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>
|