16


6

ページonloadでのJavaScript Ajax呼び出し

データベースを更新するためにajax呼び出しを発行する前に、ページが完全にロードされることを望みます。 body onloadイベントでjavascript関数を呼び出してページが完全に読み込まれるようにできますが、そこからAjax呼び出しをトリガーする方法がわかりません。これを実現するより良い方法はありますか(ページ読み込み後のデータベースの埋め込み)?

3 Answer


43


JavaScriptライブラリを使用すると、これは本当に簡単です。 jQueryを使用すると、次のように記述できます。

$(document).ready(function(){
$.ajax({ url: "database/update.html",
        context: document.body,
        success: function(){
           alert("done");
        }});
});

jQueryがない場合、最も単純なバージョンは次のようになりますが、ブラウザーの違いやエラー処理は考慮されません。

    function updateDB() {
      var xhr = new XMLHttpRequest();
      xhr.open("POST", "database/update.html", true);
      xhr.send(null);
      /* ignore result */
    }

また見なさい:


5


jQueryを使用してそれを行うことができます。

 $(document).ready(function() {
   // put Ajax here.
 });

ここでそれをチェックしてください。


4


またはプロトタイプで:

Event.observe(this, 'load', function() { new Ajax.Request(... ) );

または、インラインではなく他の場所で関数を定義してから:

Event.observe(this, 'load', functionName );

jQueryやPrototypeを特に使用する必要はありませんが、何らかの種類のライブラリを使用していることを願っています。 どちらのライブラリも、onloadよりも一貫した方法でイベント処理を処理し、もちろんAjax呼び出しの処理をはるかに簡単にします。 body onload属性を使用する必要がある場合、これらの例で参照されているのと同じ関数( onload =" javascript:functionName(); ")を呼び出すことができます。

ただし、データベースの更新がページのレンダリングに依存しない場合、完全にロードされるまで待つのはなぜですか? ページのJavaScriptの最後にAjax呼び出し関数の呼び出しを含めるだけで、ほぼ同じ効果が得られます。