我目前正在使用主要使用php的项目,我需要ajax定期重新启动请求。但我在javascript中的知识几乎为0。
我最近发现我可以使用原型的Ajax.PeriodicalUpdate来做到这一点并且工作正常。我用它来查看我的php数据库,如果添加了一个新元素,当它完成后我的脚本会将用户重定向到另一个页面。但是,一旦用户在此页面上,Ajax.PeriodicalUpdate仍在工作,并将用户带回上一页。
我想避免这种情况。我在原型文档中发现我只需要使用停止但我认为我没有正确使用它...
我有2个php页面:
第1页的,在HEAD部分我有:
var attente= new Ajax.PeriodicalUpdater('attente', 'Page2.php', {
frequency: 1
});
第2页的我应该插入像attente.stop();在身体部分,当条件满足但它不起作用时......
我应该在哪里插入第2页
<script language="javascript" type="text/javascript" src="prototype.js"></script>
在头部还是在停止之前?
答案 0 :(得分:1)
你的Page2.php应该返回一些你可以在Page1.php中识别的内容,例如:
使page2.php
<?php
if($conditionFulfilled)
echo 'Stop'
else
echo 'Continue'
?>
(通常用json完成,但对于你的情况,简单的字符串应该完成这项工作)
然后在Page1.php你可以得到类似的东西:
var attente = new Ajax.PeriodicalUpdater('attente', 'Page2.php', {
frequency: 1,
method:'get',
onSuccess: function(transport){
var response = transport.responseText || "no response text";
alert("Success! \n\n" + response);
// compare response with 'Stop'
if(response == 'Stop') {
attente.stop();
}
},
onFailure: function(){ alert('Something went wrong...') }
});
有关详细信息,请参阅:
http://www.prototypejs.org/learn/introduction-to-ajax
和
http://www.prototypejs.org/api/ajax/periodicalupdater
关于在Page2.php上插入prototype.js的部分,答案是:你可能不需要它(通常它应该在head部分下面)。