Add a cache switch for $.getscript ()
The code is as follows |
Copy Code |
Add cache control to Getscript method (function ($) { $.getscript = function (URL, callback, cache) { $.ajax ({type: ' Get ', Url:url, Success:callback, DataType: ' Script ', Ifmodified:true, Cache:cache}); }; }) (JQuery); |
$.getscript () to remove the time to automatically add timestamp
Jquery.getscript is mainly used to implement JSONP, the browser to obtain data across the domain, using the following methods
The code is as follows |
Copy Code |
$.getscript (Url,function () {...}); |
It hides a deep pit: automatically adds a timestamp to your URL, such as you request http://www.111cn.net, the actual access URL is "/?_=1379920176108"
If you have a special resolution to the URL, which is tragic, will waste a lot of time debug, to reject this behavior, you can use Jquery.ajax, using the following
The code is as follows |
Copy Code |
1.$.ajax ({ 2. URL: ' http://m.lutaf.com ', 3. DataType: "Script", 4. Cache:true, 5. Success:function () {} 6.}); using Jquery.ajax and set cache = Ture, can remove the timestamp property alltogether. |
improvement of dynamic Loading JS "method Getscript"
The code is as follows |
Copy Code |
<! DOCTYPE HTML > <meta charset= "Utf-8" > <title></title> <script src= "Jquery-1.7.2.min.js" type= "Text/javascript" ></script> <script type= "Text/javascript" > A tag array that defines a global script that is used to mark whether a script has been downloaded to the local var scriptsarray = new Array (); $.cachedscript = function (URL, options) { Loop Script Tag Array For (var s in Scriptsarray) { Console.log (Scriptsarray[s]); If an array has been downloaded to the local if (Scriptsarray[s]==url) { return {//Returns an object literal, where the done is called done to correspond to the done in the following $.ajax Done:function (method) { if (typeof method = = ' function ') {//If the incoming argument is one of the methods Method (); } } }; } } This is the way jquery officially provides a getscript implementation, which means that getscript is actually an extension of the AJAX approach Options = $.extend (Options | | {}, { DataType: "Script", Url:url, Cache:true//In fact, now this cache plus and does not add much difference }); Scriptsarray.push (URL); Put the URL address into the script tag array return $.ajax (options); }; $ (function () { $ (' #btn '). Bind (' click ', function () { $.cachedscript (' t1.js '). Done (function () { AlertMe (); }); }); $ (' #btn2 '). Bind (' click ', function () { $.getscript (' t1.js '). Done (function () { AlertMe (); }); }); }); </script> <body> <button id= "BTN" > Custom Caching Method </button> <br/> <button id= "BTN2" >getScript</button> </body>
|