2012-01-26 60 views
0

我有很簡單的jQuery應用quering YQL與YQL - 如何註冊通過自定義ID請求

SELECT title, href FROM digg.search.search WHERE query="cats" LIMIT 5 

我記錄每個查詢,以簡單的UL-李名單,在那裏我表明Ajax請求的狀態(ajax-loader,好的,錯誤)。請求完成後,我想分別將"loading"的合適元素的CSS class更改爲"ok"/"err"

但是爲了識別正確的li元素,我必須以某種方式通過一些唯一的ID來找到它。我標誌着由data-屬性鋰元素之前AJAX調用是這樣的:

var rqid = uniqId(); 
$searchLogger.append('<li class="loading" data-rqid="'+ rqid +'"><a href="#">' + q + '</a></li>'); 
$.ajax({ 
    url  : 'http://query.yahooapis.com/v1/public/yql', 
    type : 'POST', 
    dataType: 'json', 
    data : { 
     callback : '', 
     format : 'json', 
     env  : 'store://datatables.org/alltableswithkeys', 
     q  : 'SELECT title, href FROM digg.search.search WHERE query="' + q + '" LIMIT 5' 
    } 

在成功回調,我需要根據li元素引用。我無法重複使用rqid變量,因此可以通過其他請求重寫,而第一個仍在等待響應。

success: function(data) { 
    $searchLogger.find('[data-rqid="' + idOfThisRequest + '"]') 
     .removeClass('loading') 
     .removeClass('error') 
     .addClass('ok'); 

    ... // other code 
} 

是否有任何選項YQL要求,「符號」要求由我rqid,並獲取在回調ID?

回答

0

我不相信在YQL中有任何選項可以將這樣一個唯一的ID添加到將在回調中返回的查詢中。

由於您使用的是jQuery,因此您可能可以在jQuery論壇中做如下描述:Uniquely identifying ajax requests/responses。基本上,他們正在向XHR請求中添加一個可以在回調函數中讀取的唯一標識符。