Ajax网站。页面已正确加载,具体取决于上一页

时间:2014-12-11 11:48:26

标签: javascript jquery html ajax

我想问你的意见。我正在构建一个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。我想要这个,因为如果用户决定在新标签中打开,他们就会拥有整个部分。

2 个答案:

答案 0 :(得分:0)

正如我从你的代码中看到的那样,我怀疑可能在你的页面中有些选择器缺失了

  1. $("div.container #page-header")
  2. $("div.container .breadcrumb")
  3. $("div.container .content")
  4. 尝试检查对象的length属性

    if ($("selector").length > 0){
       //replace html
    }
    

答案 1 :(得分:0)

截流!三天寻找它,它就在我面前。

我的页面A中的div.container里面只有div.content。

更改了唯一ID和工作。

抱歉