是否有一个jquery插件来刷新页面的某些区域

时间:2010-08-28 05:58:27

标签: jquery

我想找一个可以刷新页面某些区域的插件,而无需刷新整个页面本身。我有一个自定义控件保存在div中,仅在刷新时更改其内容,所以我想使用的东西只能刷新div

2 个答案:

答案 0 :(得分:1)

jQuery非常适用于此。下面的简单内容将使用.result中的html更新url元素。这可以与服务器端语言和用于动态体验的不同事件相结合。 Use this tutorial from jQuery.

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});

答案 1 :(得分:0)

你想要的是ajax。从字面上重新加载页面的一部分(即,使用load()再次加载整个页面然后解析出所需的元素)是一种巨大的资源浪费。你要做的是ajax:

  1. 在您的服务器上设置一个页面,其内容包括 您想要的区域所需的数据
  2. 使用jQuery定期发送该页面的异步(即.ajax)请求
  3. 处理收到的信息并显示刷新的信息
  4. 互联网上有许多教程可以帮助您满足您的需求。


    修改:要找到一个好的教程,您需要包含更多详细信息。但是,我在这里只提供一个简单的:

    假设您有一个窗口小部件,它在列表中显示最新的标题,每5分钟更新一次。原始小部件的HTML如下:

    <ol id="headline">
      <li>Are two heads better than one? Sometimes...</li>
      <li>Crocodile ate small children in Florida</li>
      <li>Giant fireball appears across the summer sky!</li>
      <li>Scientists find method to reticulate spines</li>
    </li>
    

    对于第1步,您需要在服务器上升级一个输出类似内容的页面,该页面每5分钟更改一次:

    Arctic found to hold giant oil reserve
    

    包含当前标题,没有HTML,没有格式,只是纯文本的单行。我不会涉及服务器端代码,因为我不知道你在服务器端使用的是什么。我们假设这可以在headline.php找到。

    对于第2步和第3步,您将获得一些Javascript代码,如下所示:

    function getHeadline(){
      $.get('headline.php', function(data){
        $('<li></li>').prependTo('#headline').text(data);
        $('#headline > li').last().remove();
      });
    }
    
    $(document).ready(function(){
      setInterval(getHeadline, 300000);
    });
    

    函数getHeadline()使用GET方法获取headline.php的内容。 $.get()函数有两个参数,第一个是文件的位置,第二个是在请求完成时执行的函数。完成后,它会将获取的内容插入标题列表,同时删除最后一个标题。

    setInterval()函数用于每5分钟(300000毫秒)调用getHeadline()函数。


    当然这只是一个简单的例子,但它涵盖了所有的基础。您还将获得一个数据结构,如json,以获取更复杂的信息。您可能还想查看更详细的教程,如

    http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/ http://net.tutsplus.com/tutorials/html-css-techniques/building-a-5-star-rating-system-with-jquery-ajax-and-php/

    它们可能不完全符合您的需求,但您确实知道从哪里开始。