2010-11-09 18 views
12

डेटा सेट को वापस करने के लिए याहू वेब सेवा (http://boss.yahooapis.com/ysearch) पर कॉल करने पर, क्या टाइमआउट सेट करना और दिन समाप्त होने के बाद दिनचर्या से बाहर निकलना संभव है ?टाइमआउट के साथ jQuery getJSON

jQuery.getJSON("http://boss.yahooapis.com/ysearch/...etc", 
     function (data) { 
       //result set here 
      }); 

उत्तर

15

आप टाइमआउट विकल्प

http://api.jquery.com/jQuery.ajax/

$.ajax({ 
    url: url, 
    dataType: 'json', 
    data: data, 
    success: callback, 
    timeout: 3000 //3 second timeout 
}); 
+0

धन्यवाद! टाइमआउट ट्रिगर होने पर कॉलबैक क्या है? –

+0

नहीं, जब AJAX कॉल लौटाता है ... कि कॉलबैक फ़ंक्शन को – Galen

+0

बहुत अच्छा कहा जाएगा, लेकिन आप टाइमआउट पर इवेंटहालर कैसे डाल सकते हैं? –

0

टाइमआउट विकल्प गैलेन द्वारा प्रस्तावित सबसे अच्छा तरीका है का उपयोग कर सकते हैं। यदि आप एक वैकल्पिक विधि चाहते हैं, तो आप उस समय को रिकॉर्ड कर सकते हैं जब अनुरोध शुरू किया गया था और, आपके कॉलबैक में, इसे वर्तमान समय से तुलना करें। परिणाम की अनदेखी करें यदि कुछ निश्चित समय बीत चुका है। बेशक यह अनुरोध रद्द नहीं करेगा।

13
$.ajax({ 
    url: url, 
    dataType: 'json', 
    data: data, 
    success: callback, 
    timeout: 3000 //3 second timeout, 
    error: function(jqXHR, status, errorThrown){ //the status returned will be "timeout" 
    //do something 
    } 
}); 
+1

JSONP अनुरोधों के लिए त्रुटि कॉलबैक नहीं कहा जाता है ... – Matt

5
function testAjax() { 
     var params = "test=123"; 
     var isneedtoKillAjax = true; // set this true 

     // Fire the checkajaxkill method after 10 seonds 
     setTimeout(function() { 
      checkajaxkill(); 
     }, 10000); // 10 seconds     

     // For testing purpose set the sleep for 12 seconds in php page 

     var myAjaxCall = jQuery.getJSON('index2.php', params, function(data, textStatus){    
      isneedtoKillAjax = false; // set to false 
      // Do your actions based on result (data OR textStatus) 
     }); 

     function checkajaxkill(){ 

      // Check isneedtoKillAjax is true or false, 
      // if true abort the getJsonRequest 

      if(isneedtoKillAjax){ 
       myAjaxCall.abort(); 
       alert('killing the ajax call');     
      }else{ 
       alert('no need to kill ajax'); 
      } 
     } 
    } 
+0

हे अच्छा जवाब ... –

+0

मुझे इस उत्तर की रचनात्मकता पसंद है। मैं वास्तव में नहीं जानता था कि मैं एक getJSON कॉल को रोक सकता हूं जिस तरह से आपको धन्यवाद। यह हमारे ऐप के लिए काम किया। – uadrive

संबंधित मुद्दे