17. var chart = new YAHOO.widget.Chart ("chart", ds, {...}); var ac = new YAHOO.widget.AutoComplete("input", "suggestions", ds, {...}); var dt = new YAHOO.widget.DataTable("container", cols, ds, {...});
18. protocol The data transaction lifecycle datasource cache data widget requestEvent cacheRequestEvent cacheResponseEvent responseEvent doBeforeParseData doBeforeCallback responseEvent
19. Performance considerations Keep it local Or enable caching ds.maxCacheEntries = 100; Perform cacheable data transformations with doBeforeParseData() or doBeforeCallback() Keep request queries consistent
22. var myDS = new YAHOO.util.ScriptNodeDataSource("http://query.yahooapis.com/v1/public/yql?format=json"); myDS.responseType = YAHOO.util.DataSource.TYPE_JSON; myDS.responseSchema = { resultsList:"query.results.Result", fields: ["Title", "City", "Phone", "Rating.AverageRating"] };
23. var columns = [ {key:"Title"}, {key:"City"}, {key:"Phone"}, {key:"Rating.AverageRating"} ]; var myDT = new YAHOO.widget.DataTable("datatable", columns, myDS, {initialRequest: "&q=select * from local.search(0) where query='korean restaurant' and location='sunnyvale, ca'"});