我想问你的意见。我正在构建一个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。我想要这个,因为如果用户决定在新标签中打开,他们就会拥有整个部分。
答案 0 :(得分:0)
正如我从你的代码中看到的那样,我怀疑可能在你的页面中有些选择器缺失了
$("div.container #page-header")
$("div.container .breadcrumb")
$("div.container .content")
尝试检查对象的length
属性
if ($("selector").length > 0){
//replace html
}
答案 1 :(得分:0)
截流!三天寻找它,它就在我面前。
我的页面A中的div.container里面只有div.content。
更改了唯一ID和工作。
抱歉