0

javascriptでAJAXロードリクエストを行う方法を探していますが、AJAXロードが完了するのを待っている間javascriptコードの実行を一時停止させます。言い換えれば、私は同期AJAXロード要求を実行しようとしています(AJAXの「A」は非同期を表すことを知っています。名前が正確に正しくないことを願っています)。私が持っているのは

$('#my_id').load("my_page.pl?my_param=p1&my_other_param=p2");
//Please wait here
//Now do stuff after load is complete.

リクエストを同期させたい理由は、HTMLテーブルを作成し、その後に続くjavascriptがテーブルを解析するためです。

4

2 に答える 2

0

jQueryの'load()'メソッドはコールバックを取ります。コールバックは通常、非同期コードが必要な「待機」機能を処理する方法です。

$("#my_id").load("my_page.pl?my_param=p1&my_other_param=p2", function (response) {
    // do this stuff, which will run after the request is complete
});
于 2012-10-22T22:53:39.917 に答える
0

それはjqueryのように見えます...私はjqueryをまったく知らないのでわかりませんが、そうであれば、そのようにタグ付けするより良い答えが得られるかもしれません。javascriptには、同期または非同期呼び出しのための独自のメソッドがあることがわかります。これは私が使用するものです:

var xmlhttp;
if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
}
else {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
// Use the activeX object for old IE

xmlhttp.open("GET","http://some.internet.address/woot?foo=bar", false);
// The third argument in the open function determines the asynchronous nature, 
//it was set to false, so the code will halt at the send() point while the request is executed.
xmlhttp.send();
// Now, if the call succeeded...
if (xmlhttp.status==200) {
    response = eval('('+xmlhttp.responseText+')');
    // ...save the results to an object named response...
}
else {
    // ...Otherwise do some other stuff
    errorFunction(xmlhttp.status);
}

たくさんの良い情報もここで入手できます-http ://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

于 2012-10-22T22:55:48.807 に答える