自动重装:它是如何工作的?

时间:2010-05-05 10:03:00

标签: javascript jquery ajax jquery-plugins

我需要在我的网站中更改某些内容,如果数据库中的某些字段已更改,但无需重新加载页面!但我不知道我怎么能这样做。 你能给我一个想法吗?感谢

例如:

例如,我有一个论坛,我需要显示一个图像,如果新评论已经解决了!我可以编写所有函数,但我不明白何时必须调用函数? 也许是window.onload?

6 个答案:

答案 0 :(得分:2)

Ajax

一旦熟悉了这个概念,就可以参考jQuery AJAX documentation获取有关如何使用jQuery实现它的信息。

答案 1 :(得分:2)

然后你需要 AJAX

说明:

您需要两个页面,主页面不会“重新加载”。第二个是基于数据库字段返回小图像的两个版本。

第一页中包含此JavaScript:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">

/* normal ajax without periodical refresh
$.ajax({
  url: 'page2.php',
  success: function(data) {
    $('#database_status').html(data);
  }
});
*/

var refreshId = setInterval(function() {
     $('#database_status').load('/path/to/your.php');
}, 3000);
</script>

// Or you use the jQuery plugin Heartbeat: http://www.jasons-toolbox.com/JHeartbeat/ 

div <div id="database_status">empty</div>

第二页,根据数据库设置返回图像标记,例如在PHP中:

<?php
// do db request 
if ($request) {
    echo '<img src="true.gif"> TRUE';
} else {
    echo '<img src="false.gif"> FALSE';
}

答案 2 :(得分:2)

您可以使用jQuerys load-或JSON-method从服务器获取数据。

在您的情况下,可能出现以下情况:

  1. 网站加载。
  2. 您的JavaScript从服务器加载初始数据。
  3. 现在,每隔几秒钟或几分钟(根据您的使用案例),JavaScript会询问服务器自上次询问后是否有任何更改(例如,在您的请求中使用时间戳)。
  4. 如果是,请相应更改网站。
  5. 转到3。
  6. 请记住,过度轮询可能会对您的服务器造成巨大压力,特别是如果您拥有大量用户。长轮询或彗星是处理负载的先进技术。

答案 3 :(得分:0)

使用jquery执行ajax请求的最简单方法是load方法。在该页面上,您还可以看到大量示例。

答案 4 :(得分:0)

您可以采取两种基本方法:

  1. 使用setInterval定期发出Ajax请求,询问服务器是否有任何更新。
  2. 使用Comet伪造服务器推送

答案 5 :(得分:0)

尝试使用Ajax,例如:使用jquery,它允许你处理高级别的js。 example in this site when you do the send email