gpt4 book ai didi

javascript - 非缓存的 js 脚本是否附加到 ajax-get 请求的主文件中?

转载 作者:行者123 更新时间:2023-11-28 02:56:49 25 4
gpt4 key购买 nike

我使用以下脚本向名为 index.html 的文件请求新内容:

function addJS(js_urls) {
$.each(js_urls, function(index, value) {
$.ajax({
type: 'GET',
async: 'false', //We should not cache dynamic js-scripts
dataType: 'script',
url: value
})
})
}

function updatePage(data) {
if(data['js']) {addJS(data['js']);} //If any js-scripts are requested, load them
$.each(data, function(index, value) {
$('#' + index).html(value);
});
return false; //Stop link from redirecting
}

function ajaxRequest(url) {
if(ajaxReq) {ajaxReq.abort();} //Abort current ajax requests if they exist
ajaxReq = $.ajax({
type: 'GET',
cache: 'false', //We should not cache content
url: url,
dataType: 'json',
success: updatePage
});
}

假设我的index.html 看起来像这样:

<div id="content">Content to be replace</div>

为了澄清这里发生了什么。 ajax请求返回json数据,如果该json数据包含名为“js”的条目,则通过addJS函数加载该条目中的url。如您所见,我没有缓存 js 脚本。

所以我的问题是,如果我使用ajaxRequest函数请求一个新的url,我已经加载的js脚本会消失吗?或者它们会在那里以便我可以在新内容中使用它们吗?

感谢您的宝贵时间!

最佳答案

如果我正确理解了这个问题,答案是“不”,您已经加载的脚本不会“消失”。但是,如果您重新加载定义全局函数或全局变量的脚本,那么您所做的更改将被覆盖。

换句话说,如果您有一个执行以下操作的脚本:

var globalvar = "hello world";

在处理页面某处内容的过程中:

  if (whatever) globalvar = "goodbye world";

然后,如果您重新加载脚本,该变量将被设置回其原始值。

关于javascript - 非缓存的 js 脚本是否附加到 ajax-get 请求的主文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2392548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com