2012-05-13 11 views
6

PHPは1-2秒遅れで値を返します。jQuery.postは応答を待っていません。

あなたはどう思いますか、その問題を解決して応答を待つことは可能でしょうか?

$.post(sSource, aoData, function (data) {  
     oCache.lastJson = jQuery.extend(true, {}, data); 
     if (oCache.iCacheLower != oCache.iDisplayStart) 
     { 
      data.aaData.splice(0, oCache.iDisplayStart-oCache.iCacheLower); 
     } 
     data.aaData.splice(oCache.iDisplayLength, data.aaData.length); 
     abc(oCache); 
     fnCallback(data); 
    },"json"); 

GETと同じ機能が

$.getJSON(sSource, aoData, function (json) { 
     /* Callback processing */ 
     oCache.lastJson = jQuery.extend(true, {}, json); 

     if (oCache.iCacheLower != oCache.iDisplayStart) 
     { 
      json.aaData.splice(0, oCache.iDisplayStart-oCache.iCacheLower); 
     } 
     json.aaData.splice(oCache.iDisplayLength, json.aaData.length); 

     fnCallback(json) 
    }); 
+3

おそらくリクエストは失敗しますか? – gdoron

+1

"それは応答を待っていない"という意味ですか?私はそれが本当に確実であると確信しています - おそらく、あなたはあなたがいると思っている、あるいは得ていると思われる回答を得ていませんか? –

+0

@踊りません。 Firebugで1〜2秒後に結果が表示されます – heron

答えて

16

$ .postは非同期ですが、あなたが、その方法は、次のことができるようになります$アヤックスを使用する必要があるとfalseに非同期(async)設定うまく機能します応答を待ちます。 あなたはそれについてもっと読むことができます:http://api.jquery.com/jQuery.ajax/

+0

これは '$ .getJSON'です。 –

+1

'.load()'、 '.get()'、 '.post()'、 '' getJSON() ''と '' getScript() ''のすべての短縮型メソッドは非同期です。したがって、彼らはすべて「サーバーの応答を待つ」と言えるでしょう。 AFAIKでは、 'asaj:false'を持つ' .ajax() 'のみが非同期ではありませんが、すべてのブラウザでサポートされていないため、決して使用しないでください。 –

+0

だから、解決策は何ですか? – JoeTidee

関連する問題