Ticket #3004 (closed enhancement: wontfix)
cache option for getScript
| Reported by: | eitanpo | Owned by: | |
|---|---|---|---|
| Priority: | low | Milestone: | 1.5 |
| Component: | ajax | Version: | 1.2.6 |
| Keywords: | getScript cache | Cc: | |
| Blocking: | Blocked by: |
Description
now, in order to enable cache for loading scripts from another domain you have to change global ajax setting with ajaxSetup, and then to restore the original ajax settings.
cache option or options attribute for getScript can make life easier. example for this is using hosted javascript libraries like YUI.
Attachments
Change History
comment:2 Changed 5 years ago by eitanpo
You are right, but this will make code less readable. Ease of use is an important reason too. My guess is that why getScript function is present in jQuery.
Why not code like this:
$.getScript("http://domain.com/script.js", {cache: true});
or
$.getScript("http://domain.com/script.js", true);
I think that .getScript is the only exception out of other .ajax wrappers to have cache control.
comment:3 Changed 4 years ago by Rob Loach
The attached patch adds an options parameter to jQuery.get() and jQuery.post(), which is merged in with the defaults. This allows us to add an options parameter to the getScript() function, so we could essentially pass in { cache:true}, and it would merge it into the jQuery.ajax() call. http://dev.jquery.com/attachment/ticket/3004/getpostoptions.patch
comment:5 Changed 3 years ago by addyosmani
- Keywords needsreview added
- Milestone changed from 1.3 to 1.5
This looks like it's going to be a wontfix. Marking for further review.
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.


Correct me if I'm wrong, but I thought .get, .post, .getJSON, .getScript, and .load were only shortcuts and simplified versions that wrap the more complex functionalities of .ajax().
If you want to have a cache option, then you should probably use $.ajax(options), and set the cache setting accordingly. It's not that hard to master and it does a lot more than the simplified versions...
i.e.:
var data = {param1:"value1",param2:"value2"}; var options = { data: data, url: "ajax.php", dataType: "script", cache: false, type: "GET" success: function(r){ // DO SOMETHING ELSE HERE IF NEEDED } } $.ajax(options);This will have the same effect as if you were using $.getScript() but you have some extra control.