2012-03-17 18 views
0

を繰り返しhi.jsファイルをダウンロードするコード、私は繰り返し、その後$ボタンを.getScriptを(クリックすると何が起こるか

$(function() { 
    $("input[type=button]").click(   
      function(evt) {       
       if(!window.sayHi) { 
        evt.target.disabled = "disabled"; 
        $.getScript("hi.js", function() { 
         sayHi($("input[type=text").val()); 
         evt.target.disabled = ""; 
        }); 
       } 
       else{ 
        sayHi($("input[type=text").val()); 
       } 
      }); 
}); 
)または初回のみです?

$ .getScript()は、クライアントマシンに存在するjsファイルをチェックするかどうかをチェックします。議論してください。ありがとう

私はgetScript()関数について詳しく知っています。ここで私はいくつかの行のために立ち往生したコードを与えています。

jQuery.cachedScript = function(url, options) { 

// allow user to set any option except for dataType, cache, and url 
options = $.extend(options || {}, { 
dataType: "script", 
cache: true, 
url: url 
}); 

// Use $.ajax() since it is more flexible than $.getScript 
// Return the jqXHR object so we can chain callbacks 
return jQuery.ajax(options); 
}; 

// Usage 
$.cachedScript("ajax/test.js").done(function(script, textStatus) { 
console.log(textStatus); 
}); 

1)cachedScript()関数は2つの引数を必要としますが、呼び出し時には1つしか送信しません。なぜですか?

2)ここからdone()関数がここに来ますか?

それは(それらが同じミリ秒では発生しません提供)各clickイベントのためにダウンロードされますので、jQueryのがGET PARAMとして現在のUnixエポックを追加し

+1

すべて彼女について説明しましたhttp://api.jquery.com/jQuery.getScript/ –

+0

怠けてはいけません...機能のドキュメントを読んでください。 – gdoron

答えて

0

上記の2つの点を説明してください:P。

デフォルトでは、$.getScript()は、キャッシュ設定をfalseに設定します。この はリクエストURLにタイムスタンプ付きクエリパラメータを付加して、 が要求されるたびにブラウザがそのスクリプトをダウンロードするようにします。 は、 $.ajaxSetup()を使用してキャッシュプロパティをグローバルに設定することで、この機能を無効にできます。

Source

フラグを設定してテストするか、新しいスクリプトで定義された変数を探すのがよいでしょう。それに基づいて条件を書いてください。

+0

私は疑問に私の質問を更新します。可能であれば、見た目と返信をしてください。ありがとう – Thomas

関連する問題