我正在使用$.getscript("")
从远程服务器获取脚本。
function fetch(url){
window.setInterval(function (){
$.getScript(url);
},50000)
}
fetch("http://example.com/script.js");
默认情况下它具有非缓存,我们可以看到输出显示为
<script async="" src="http://example.com/script.js?7330519448833367000&_=1416681336440">
我们可以看到它总是添加?73325614数字,总是不使用缓存的数字。但是有一个问题,远程服务器的htaccess会阻止&#34;?&#34; URL中的问号。所以,我需要使用另一种方式来运行我的函数而不是问号(非缓存)方法。有没有办法做到这一点?
答案 0 :(得分:1)
修改,更新
尝试
$.ajaxSetup({
beforeSend: function (jqxhr, settings) {
// if `settings.url` string contains `?` character,
// `.split()` `settings.url` string at `?` , creating `url` array
// set `settings.url` to item at index `0` within `url` array :
// original `settings.url` string , preceding `?` character
if (/\?/.test(settings.url)) {
var url = settings.url.split("?");
if (url.length >= 2) {
settings.url = url[0];
}
}
}
})
var s = null;
function fetch(url) {
s = window.setInterval(function () {
$.getScript(url)
}, 50000)
}
fetch("http://example.com/script.js");
在beforeSend
,jQuery.ajax( [settings ] )
$.ajaxSetup({
beforeSend: function (jqxhr, settings) {
if (/\?/.test(settings.url)) {
var url = settings.url.split("?");
if (url.length >= 2) {
settings.url = url[0];
jqxhr.temp = settings.url
}
}
}
})
var s = null;
function fetch(url) {
s = window.setInterval(function () {
$.getScript(url)
.done(function (data, textStatus, jqxhr) {
console.log(textStatus, jqxhr.temp, window.gist);
$("#result").append(jqxhr.temp + "\n")
})
// substitued 5000 for 50000
}, 5000)
}
fetch("https://gist.githubusercontent.com/anonymous/ca95080f6d3a7b32bb95/raw/120dec0dce825193b0551ad1fbda4b71029b336d/js.js");
#result {
width : 300px;
font-size : 12px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="result"></div>