ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery .getScript()リファクタリングして、キャッシュを防ぎます

jQuery .getScript()リファクタリングして、キャッシュを防ぎます

Jennifer Aniston
リリース: 2025-02-28 00:35:12
オリジナル
763 人が閲覧しました

jQuery .getScript()リファクタリングして、キャッシュを防ぎます

jQuery .getScript()関数の機能は、各AJAXスクリプト呼び出しに一意のID(タイムスタンプなど)が含まれていることです 。これは、スクリプトを取得するためにSetimeOutを実行していたときに問題を抱えていましたが、同じスクリプトをリロードしていました...良くありませんでした。そこで、キャッシュを防ぐためにjqueryの.getscrip()をわずかにリファクタリングすることにしました。

新しいgetScript関数

<span>//getScript refactor to prevent caching
</span><span>(function () {
</span>    $<span>.getScript = function(url<span>, callback, cache</span>)
</span>    <span>{
</span>        $<span>.ajax({
</span>                <span>type: "GET",
</span>                <span>url: url,
</span>                <span>success: callback,
</span>                <span>dataType: "script",
</span>                <span>cache: cache
</span>        <span>});
</span>    <span>};
</span><span>})();</span>
ログイン後にコピー
それが機能することを証明するために、私はHTTP要求の読み込み時間でテストし、スクリプトがキャッシュバージョンを約7msで読み込んでいることがわかります。 jQuery .getScript()リファクタリングして、キャッシュを防ぎます 元の.getScript()関数と、追加のパラメーターで新しい関数を呼び出す方法を詳しく見てみましょう。
<span>//normal no cached version
</span>$<span>.getScript('js/script.js', function()
</span><span>{
</span>    <span>//do something after script loaded
</span><span>});</span>
ログイン後にコピー

new .getScript()関数を呼び出す方法

キャッシュしたい場合は、最後にtrueを含めるだけです。
<span>//cache = true
</span>$<span>.getScript('js/script.js', function()
</span><span>{
</span>    <span>//do something after script loaded
</span><span>}, true);</span>
ログイン後にコピー
または
<span>// turn on cache
</span>$<span>.ajaxSetup({ cache: true });
</span>$<span>.getScript(url, callback);
</span><span>// turn cache back off
</span>$<span>.ajaxSetup({ cache: false });</span>
ログイン後にコピー

jquery getScriptのリファクタルとキャッシュの防止に関するよくある質問(FAQ)

jquery getScriptとは何ですか?それはどのように機能しますか?

​​

jQuery getScriptは、HTTP Get Requestを使用してJavaScriptファイルをロードおよび実行する強力なAJAXメソッドです。 $ .ajax()の速記方法です。 getScriptメソッドは、サーバーからスクリプトを取得して実行します。需要のあるスクリプトをロードするのに便利な方法であり、Webページのパフォーマンスを向上させるのに役立ちます。ただし、開発中にスクリプトを頻繁に変更するときなど、キャッシングを防ぐことができる場合があります。 jQuery getScriptでキャッシュを防ぐために、$ .ajaxsetup()メソッドを使用して、getScriptを呼び出す前にキャッシュをfalseに設定できます。また、コードの冗長性または非効率性を特定して排除するのに役立ちます。リファクタリングは、コードをよりモジュール化し、テストとメンテナンスを容易にすることもできます。これにより、コードの理解と維持が容易になります。また、$ deferredオブジェクトを使用してコールバックを管理することもできます。これにより、コードがより効率的かつ簡単にデバッグできます。 $ .ajax()、$ .get()、$ .post()などのその他のajaxメソッドは、サーバーからデータを送信および取得するために使用できますが、getScriptのように返されたスクリプトを自動的に実行しません。

他のJavaScriptライブラリでjQuery getScriptを使用できますか?

はい、他のJavaScriptライブラリでjQuery getScriptを使用できます。ただし、JQueryと他のライブラリの間に競合がないことを確認する必要があります。 jquery.noconflict()メソッドを使用して、競合を回避します。この方法は、リクエストが失敗したときに呼び出されます。これを使用してエラーメッセージを表示したり、スクリプトの読み込みに失敗したときに他のアクションを実行したりできます。

jQuery getScriptを使用して他のドメインからスクリプトをロードできますか?ただし、同性愛者のポリシーのため、スクリプトは、ドメインクロスリクエストをサポートするように設計する必要があります。

jQuery getScriptのパフォーマンスを改善するにはどうすればよいですか?

jquery getScriptのパフォーマンスを改善することができます。また、キャッシュパラメーターを使用して、スクリプトがキャッシュされているかどうかを制御することもできます。ただし、GetScriptは非同期であるため、スクリプトは予想される順序でロードされない場合があります。スクリプトが正しい順序でロードされるようにするには、.done()メソッドを使用してgetScriptコールをチェーンできます。

以上がjQuery .getScript()リファクタリングして、キャッシュを防ぎますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート