2

YUI3 は初めてです。データテーブルを更新するために、10 秒ごとにデータソースをポーリングしようとしています。しかし、以下のコードでは、「表示するデータがありません」と表示されます...大量のコードで申し訳ありません...

YUI().use("datatable", "datasource-get", "datasource-jsonschema", "datatable-datasource", "datasource-polling", "datasource-function", function (Y) {

var url = "http://query.yahooapis.com/v1/public/yql?format=json" +
              "&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys",
    query = "&q=" + encodeURIComponent(
            'select * from local.search ' +
            'where zip = "94089" and query = "pizza"'),
    dataSource,
    table;

dataSource = new Y.DataSource.Get({ source: url });

dataSource.plug(Y.Plugin.DataSourceJSONSchema, {
    schema: {
        resultListLocator: "query.results.Result",
        resultFields: [
            "Title",
            "Phone",
            {
                key: "Rating",
                locator: "Rating.AverageRating",
                parser: function (val) {
                    // YQL is returning "NaN" for unrated restaurants
                    return isNaN(val) ? -1 : +val;
                }
            }
        ]
    }
});

intervalId = dataSource.setInterval(10000, {
    request : query,
    callback: {
        success: function (e) {
            table.datasource.load(e.response);
        },
        failure: function (e) {

        }
    }
});

table = new Y.DataTable({
    columns: [
        "Title",
        "Phone",
        {
            key: "Rating",
            formatter: function (o) {
                if (o.value === -1) {
                    o.value = '(none)';
                }
            }
        }
    ],
    summary: "Pizza places near 98089",
    caption: "Table with JSON data from YQL"
});

table.plug(Y.Plugin.DataTableDataSource, { datasource: dataSource });

// This line works (but it doesnt poll)
//table.datasource.load({ request: query });

table.render("#pizza");
});

私がよくわからない行は...

success: function (e) {
            table.datasource.load(e.response);
        },
4

1 に答える 1

0

以下はあなたのニーズに合うはずです: http://developer.yahoo.com/yui/examples/datatable/dt_polling.html

于 2013-06-13T16:12:49.950 に答える