【发布时间】:2014-12-11 11:48:25
【问题描述】:
我想问问你的意见。我正在构建一个 ajax 网页。我的链接对它们链接到的 URL 进行 GET,选择 div.content 并更改实际 div.content 的内容。
此 GET 操作检索其中包含一些代码的 HTML 代码。它看起来可以正确执行,但仅当我不是来自特定链接时。我看不出有什么意义。
我不知道在此处发布哪些代码可能有用以查看效果,如果我粘贴的代码过多或过少,我很抱歉。
我有这两个函数来管理主布局中新脚本资源的加载:
loadScript: function (scriptUrl, callback) {
if (jsArray[scriptUrl]) {
console.log("loadScript already loaded " + scriptUrl);
callback && callback();
} else {
jsArray[scriptUrl] = true;
console.log("loadScript " + scriptUrl);
var body = document.getElementsByTagName("body")[0];
var script = document.createElement('script');
script.type = "text/javascript";
script.src = scriptUrl;
script.onload = callback;
body.appendChild(script); //or something of the likes
}
},
loadScripts: function (scriptsUrl, callback) {
console.log("loadScripts");
if (scriptsUrl.length === 1) {
this.loadScript(scriptsUrl[0], callback);
} else {
var scriptUrl = scriptsUrl[0];
scriptsUrl.shift();
this.loadScript(scriptUrl, function () {
Main.loadScripts(scriptsUrl, callback)
});
}
}
};
我所有与异步类的链接都绑定到这个函数:
var loadAsyncUrl = function (url) {
if (main.currentPage === url) {}
main.currentPage = url;
$("div.container .page-content").hide();
$("div.container .loading-link").show();
$.get(url, function (data) {
$("div.container #page-header").html($(data).find("div.container #page-header").html());
$("div.container .breadcrumb").html($(data).find("div.container .breadcrumb").html());
$("div.container .content").html($(data).find("div.container .content").html());
$("div.container .loading-link").hide();
$("div.container .page-content").show();
}, 'html')
.fail(function (e) {
alert("ERROR 404");
console.log(e);
});
};
如果我从页面 A 转到任何页面(甚至是页面 A 本身),则不会调用 div.content 底部的 loadScripts 调用。另一方面,如果我从页面 B 转到任何页面,甚至是 A,代码都会正确执行。
实际上,页面 A 的 HTML 代码比其他页面重一些,所有的 CSS 规则等可能会花费更多时间来呈现。可能是这个原因吗?如果我再次加载来自页面 A 的页面 A,你如何解释它正在正确加载?
您将如何处理这个问题?我希望链接指向一个完整的网页,而不仅仅是我要加载的部分 html。我想要这个,因为如果用户决定在新标签中打开,他们就会拥有整个部分。
【问题讨论】:
-
您是否从控制台收到任何错误?
-
我没有。问题已经解决了。 JS 是如何执行的,即使它没有达到我的预期,但这是另一点......谢谢
-
希望我的回答能以正确的方式推动你
标签: javascript jquery html ajax