如何通过$.getScript()获取脚本文件
How to get script file by $.getScript()
我正在尝试从一些代码主机导入一些javascript文件。
$.when(
$.getScript('http://pingzi.googlecode.com/svn-history/r30/branches/wangqi/web/jquery.window.min.js'),
$.getScript('http://mottie.github.com/tablesorter/js/jquery.tablesorter.js'),
$.getScript('http://tconnell.com/samples/scroller/lib/jquery.tablesorter.scroller.js'),
$.getScript('http://code.highcharts.com/stock/highstock.js'),
$.Deferred(
function(deferred) {
$(deferred.resolve);
}
)
).done(function() {
// my function goes here....
});
当我试图调用这些URL来导入js文件时,这些URL会附加?_=1344036242417
,然后我就无法真正获得我想要的脚本文件。
即。"NetworkError: 404 Not Found - http://pingzi.googlecode.com/svn-history/r30/branches/wangqi/web/jquery.window.min.js?_=1344036242417"
有人知道如何绕过这个问题吗?提前谢谢。
这是因为在jQuery中,ajax中的缓存默认是关闭的,要打开它并删除querystring do:
$.ajaxSetup({
cache: true
});
但这也可能影响其他不想缓存的ajax调用,在getScript的文档中有很多关于这方面的内容,甚至还有一些关于创建缓存的getScript函数cachedScript的方法。
您还可以在$.getScript中启用缓存,方法是用一个新选项重新定义函数,通过传递true或false来打开/关闭缓存:
$.getScript = function(url, callback, cache){
$.ajax({
type: "GET",
url: url,
success: callback,
dataType: "script",
cache: cache
});
};
jQuery
具有用于此类查询的自动缓存机制。如果您不想添加额外的参数,请使用以下设置:
$.ajaxSetup({
cache: true
});
来源:http://api.jquery.com/jQuery.getScript/#caching-请求
jQuery正在自动添加_=1344036242417
,这会破坏URL。注:
- 如果没有查询参数,URL就可以了
- 但它404带有查询参数
为了防止jQuery添加该参数:Ajax获取带有无用参数的请求。要总结该答案,请在调用$.getScript()
设置cache: true
之前使用$.ajaxSetup
。
默认情况下,
$.getScript()
会将缓存设置设置为false
。这会在请求URL中添加一个带时间戳的查询参数,以确保浏览器每次请求脚本时都会下载该脚本。您可以通过使用$.ajaxSetup()
:全局设置缓存属性来覆盖此功能$.ajaxSetup({ cache: true });
附加的查询字符串是为了防止缓存。您可以通过启用缓存来禁用此功能:
$.ajaxSetup({
cache: true
});
- 如何通过$.getScript()获取脚本文件
- 获取脚本中CSS颜色属性的实际值
- 使用AJAX在我的域内获取脚本
- 如何使用 ajax 实时搜索获取脚本文本框中的搜索值
- 使用 PHP 从网页获取脚本内容
- JS从内部获取脚本参数
- 从脚本标记内部获取脚本标记的父级
- JavaScript 脚本执行时间太长.获取脚本需要太长时间提示
- 有没有办法全局获取脚本文件
- 使用此值选择选项获取脚本
- 如何在 V8 中获取脚本的源文件名
- Delphi Chromium Embedded(TChromium)-获取脚本输出
- 如何使用RequireJS获取脚本URL
- 在加载angular之前从服务器获取脚本位置
- 从服务器获取脚本位置
- 正在分析HTML以获取脚本变量值
- 使用cURL获取脚本内容
- IE在添加到onclick处理程序时从缓存中获取脚本(动态添加)
- 如何获取脚本's在.append()中的值
- 使用本地javascript获取脚本文件的内容