AJAX页面部分重新加载

时间:2015-08-22 11:12:43

标签: javascript jquery

我想每10秒钟使用AJAX重新加载页面,因此页面不需要刷新,您可以单击按钮刷新该部分。

我要重新加载的位是论坛的所有主题都在此链接的位置: http://www.roblox.com/Forum/ShowForum.aspx?ForumID=35

我将如何实现这一点,这意味着它只刷新论坛的那个页面并添加任何新主题?

2 个答案:

答案 0 :(得分:0)

尝试使用jQuery加载方法。 http://www.sitepoint.com/auto-refresh-div-content-jquery-ajax/

$(function(){        
            var $container = $("#content");
            $container.load("rss-feed-data.php");
            var refreshId = setInterval(function()
            {
                $container.load('rss-feed-data.php');
            }, 10000);
    });

答案 1 :(得分:0)

你可以用两种方式做到这一点。

方法1

基本上,您每次都会加载整个页面,然后使用Javascript找到您想要的元素,并将其替换为您刚刚收到的元素。 (在我假设jQuery的片段中)

$(function() {
  //element to be replaced, according to your code
  var elementToBeReplacedId = "#ctl00_cphRoblox_ThreadView1_ctl00_ThreadList"

  //current url
  var refreshUrl = window.location.href;

  setInterval(function()  {
    $.ajax(refreshUrl)
     .done(function(data) {
       //data contains all the webpage. It is converted into a jqueryObject and then the thread container is searched
       var _$newElement = $(data).find(elementToBeReplacedId);

       if (_$newElement.length > 0 {
          //the old element is replaced with the new one
          $(elementToBeReplacedId).replaceWith(_$newElement);
       }
    })

  }, 10000);
}

方法2

如果您可以拆分论坛网页,以便通过URL可以独立访问线程块,您可以编辑我上面解释的方法并使其仅加载线程框架。此方法应该保证更好的性能,因为您不必每次都加载整个页面,而只需要加载必要的块。