我想找一个可以刷新页面某些区域的插件,而无需刷新整个页面本身。我有一个自定义控件保存在div中,仅在刷新时更改其内容,所以我想使用的东西只能刷新div
答案 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:
互联网上有许多教程可以帮助您满足您的需求。
修改:要找到一个好的教程,您需要包含更多详细信息。但是,我在这里只提供一个简单的:
假设您有一个窗口小部件,它在列表中显示最新的标题,每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/
它们可能不完全符合您的需求,但您确实知道从哪里开始。