JQUERY LOAD无法再次加载相同的html

时间:2014-12-24 09:44:39

标签: javascript jquery html

我创建了一个html页面,根据参数' resourceType'呈现不同的页面。 ResourceType可以是IO / CPU / STORAGE等。我已经采用了这种设计的可重用性,因为我们对所有图表都有相同的布局,除了图表的输入因resourceType而异。

 <script>
    require(['../js/viewmodel/db-resource-analyze']);
</script>  

        <div class="oj-row" id="pageContent">


            <div class="topchartRegionDiv">

.....

            </div>
       </div>

现在我从我的HOME页面加载此页面,该页面有垂直标签(如左侧菜单) 单击选项卡,我使用jquery load

动态加载页面
window.paramObj =
                 {
                    resType: "cpu"
                 };


$('#cpuContent').load("db-analytics-resources-home.html", function(responseTxt, statusTxt, xhr) {
                                    if (statusTxt == "success")
                                        alert("External content loaded successfully!");
                                    if (statusTxt == "error")
                                        alert("Error: " + xhr.status + ": " + xhr.statusText);
                                });

下次用户点击IO选项卡...我执行相同的操作但使用不同的参数

window.paramObj =
                 {
                    resType: "io"
                 };
$('#ioContent').load("db-analytics-resources-home.html", function(responseTxt, statusTxt, xhr) {
                                    if (statusTxt == "success")
                                        alert("External content loaded successfully!");
                                    if (statusTxt == "error")
                                        alert("Error: " + xhr.status + ": " + xhr.statusText);
                                });

第一次加载没有任何问题,但后续加载不会发生,页面显示为空白。 我怀疑该页面已缓存但未加载。如何使用JQUERY加载强制重新加载跳过缓存。有什么指针吗?

3 个答案:

答案 0 :(得分:0)

试试这个Stop jQuery .load response from being cached

$.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
});

正如小伙子提到的那样,如果.load,。loadJSON等便利功能不能满足您的需求,请使用.ajax功能,您可以在那里找到很多可能会做什么的配置选项你需要

答案 1 :(得分:0)

你可以尝试这种方法。这将阻止所有缓存

$('#ioContent')。load(“db-analytics-resources-home.html?”+ Math.random(),function(){})

答案 2 :(得分:0)

非常感谢所有回复。我可以通过将JS脚本作为参数传递给JQUERY加载回调并在成功加载html doc时调用它来解决这个问题。

像这样:

                        $('#' + resType + 'Content').load(url, function(responseTxt, statusTxt, xhr) {
                                if (statusTxt == "success")
                                {

                                    alert("External content loaded successfully!...calling JS");
                                    new self.dbResourceAnalyze();
                                }
                                if (statusTxt == "error")
                                    alert("Error: " + xhr.status + ": " + xhr.statusText);


                            });