jQuery.ajaxの結果を呼び出し関数の外部で使用するか、cronなしで実行できます

少し前にjQuery.ajaxを使い始めました。 1つのスクリプトを作成する過程で、ajaxリクエストの応答をすぐに使用できないことを発見しました。 私の場合、リクエストはサーバースクリプトに渡され、サーバースクリプトはサードパーティドメインからjsonファイルを満たします。 ファイアバグの充填は12秒から20秒まで追跡されますが、これは私の基準では十分な長さです(人をそれほど長く待たせることはできません)。 私は状況から次の方法を思いつきました:



グローバル変数(日付、ルーブルの為替レート)を導入します。

var jscurr = jQuery.parseJSON('{"data":"2012-01-22","USD":31.9344,"EUR":40.3842,"UAH":3.98135}')







外部サーバーへのリクエスト:

jQuery(document).ready(function() {

jQuery.ajax({

type: "GET",

url: "proxy.php",

dataType: "script",

cashe: false,

complete: curencesjson(),

success: curencesjsonT()

});

});// onLoad








完了したら、古いjsonファイルを開き、ユーザーが昨日のデータの操作を開始できるようにします。

function curencesjson() {

jQuery.ajax({

url: 'curences.json',

dataType: "json",

cache: false,

success: function(jscur) {

jsreturn(jscur);

}

});



// success

function jsreturn(jscur){

jscurr = jscur;

}

}








proxy.phpの開始から20秒後、jsonが完全に更新されるまで、もう一度読み、人々に最新のデータを提供します。これはすべて成功します。

function curencesjsonT() {

setTimeout(function(){

jQuery.ajax({

url: 'curences.json',

dataType: "json",

cache: false,

success: function(jscur) {

jsreturn(jscur);

}

});

}, 20000);

}



// success









したがって、cronを使用せずにJSONデータの更新を開始することができました。 また、ajaxリクエストの結果は、呼び出し関数の外部で利用できます。

サーバー側のスクリプトでは、日付によるチェックが編成され、更新は1回のみ発生し、新しい日ごとにスクリプトのあるページに最初の訪問者が到着します。



簡単だったかもしれませんが、これは私の経験の始まりに過ぎません。



All Articles