2016-01-19 130 views
0

我想自动刷新特定的div。 我试图使用以下脚本:使用javascript自动刷新div本身

var auto_refresh = setInterval(
    function() { 
     $('#refresh').load('#refresh').fadeIn(); 
     }, 2000 
); 

但是,它不起作用。我认为当前页面的URL需要添加如“$('#refresh')。load('{current_page.html} #refresh')。fadeIn();” (auto refresh a div using javascript)。

有什么办法可以使用javascript或jQuery刷新特定的div本身,而无需添加到当前页面的url?

+1

load()的参数应该是您要请求数据的URL,而不是您希望加载结果的元素的id。返回的结果将被加载到你的'#refresh'元素中。或者加载页面片段......'$(“#refresh”).load(“ajax/test.html#some-elem”);' – ann0nC0d3r

+0

_“有没有什么方法可以使用javascript或jQuery来刷新特定的div本身而不会添加到当前页面的网址?“_ - 为什么?只是_use_当前的URL,如果这是你想要从中获取数据的地方。 (如果你不知道如何在JS中获取当前的URL - 研究它。) – CBroe

+1

@ ann0nC0d3r。真的非常感谢您的评论。 – Peter

回答

1

您应该将您的源的url作为参数提供给load()函数。

.load('sample/ajax'); 

但我想你应该知道这背后发生了什么。

您可以使用ajax加载div元素的innerHTML而无需重新加载页面。

假设你有loadContent()函数,它返回来自服务器的新html内容。该函数使用ajax动态加载内容。

所以,你可以说:

var myNewContent = loadContent(); 
$('#myDiv').html(myNewContent); 

现在你可以做到这一点请定期使用setInterval()功能,你在你的问题已经做了。


仍然有几件事情你需要知道。

  1. 您需要了解ajax。它很容易学习这种技术。
  2. 您需要了解synchronous and asynchronous calls之间的区别。以及如何处理promises

  3. 如果您尝试从不同于您的域中获取内容,您需要了解cross domain requests

祝你好运!

+0

非常感谢。 – Peter