部分刷新网站无法正常工作

时间:2012-09-28 08:27:45

标签: javascript jquery page-refresh partial-page-refresh

我正在尝试刷新我网站的一部分(左侧部分显示包含主题的列表),但它对我不起作用。如果单击刷新按钮,我会在左侧部分看到一个非常奇怪的屏幕。我正在使用的脚本是:

$(function() {
   $("#refresh").click(function(evt) {
      $(".bgleft").load("left.php")
      evt.preventDefault();
   })
})

我得到的奇怪屏幕是一个白色的空白屏幕,上面有一个随机文本(不存在)。我不明白为什么会这样。有关实例:转到(已删除) 然后单击左框中的“刷新”。

修改

HTML代码段:<body class="bgleft">

4 个答案:

答案 0 :(得分:1)

在left.php中有两行显示theese字符的代码。

for(var n = 1; n < 7; n++)
document.write(String.fromCharCode(Math.round(Math.random()*25)+97));

尝试删除它们,它应该有帮助。

另外,在其他答案中也很难过,只发送<body>的内容作为回应,因为脚本已经包含在网站中。

答案 1 :(得分:1)

在进行部分更新时发送完整的HTML页面通常不是一个好主意。如果你看一下你的left.php产生了什么,那就是你在iframe中使用的完整页面(包含<html>标签和所有内容)。

创建一个仅呈现left.php正文的页面,并将其用于部分更新。或者查看here了解如何刷新iframe。

PS:在设计,动态/ javascript功能和未来可扩展性方面,框架集已被绝对弃用并且确实受到限制。考虑不使用它们......

答案 2 :(得分:0)

为什么要在当前HTML代码中加载同一页HEADBODYBODY

$(function() {
    $("#refresh").click(function(evt) {
        evt.preventDefault();         
        $(window.top.window).find('frame[name=left]').reload();
    })
})

答案 3 :(得分:0)

您应该只获取要更新的内容,而不是整个页面。目前,正在提取整个页面,包括htmlbody甚至script标记。由于这个原因,jQuery和其他脚本也会再次加载。这可能会在以后引起重大问题。