如果数组发生更改,如何发送警报
How can I have an alert sent if the array changes?
如果NewMessage
发生更改,我需要一个警报。我尝试过live
、change on
和bind change
,但都不起作用。
相关PHP:
$message=6;
$myReturnData["Message"] = $message;
//JSON-encode and return
print json_encode($myReturnData);
相关jQuery:
setInterval(function(){
$.getJSON("foo.php", function(data){
var NewMessage=(data.Message);
if(NewMessage>0){
document.title= NewMessage + ' pm';}
$(NewMessage).live("change", function() {
alert(NewMessage);
});
});
}, 3000);
"change"没有做你认为应该做的事情。你应该将原始消息存储在一个变量中,然后将其与你得到的新消息进行比较。像这样:
var currentMessage = '';
setInterval(function(){
$.getJSON("foo.php", function(data){
var NewMessage=(data.Message);
if(NewMessage>0){
document.title= NewMessage + ' pm';
if (currentMessage !== NewMessage) {
alert(NewMessage);
currentMessage = NewMessage;
}
}
});
}, 3000);
假设您希望在服务器控制的变量发生更改时运行函数X。这意味着您正在使用轮询机制。
因此,如果您想让代码知道何时收到不同的消息,则必须将前一条消息存储在回调函数范围之外的某个位置。
最简单的方法:
var lastMessage = 'the server will never ever forever ever return this message';
setInterval(function(){
$.getJSON("foo.php", function(data){
// .. arbitrary code
if (lastMessage != data.Message)
{
alert('it changed');
lastMessage = data.Message;
}
// .. more arbitrary code
});
}, 3000);
我认为以下代码没有任何意义,甚至无法远程工作,因为NewMessage不是DOM元素,是吗?
$(NewMessage).live("change", function() {
alert(NewMessage);
});
相关文章:
- 使用application/x-www-form-urlencoded使用node.js在post请求中发送数组
- 使用javascript ajax发送数组
- 发送数组 ajax.request 原型
- 使用 $.post 发送数组
- 使用jquery发送数组
- 从PHP以JS中的callbackdata形式发送数组
- 如何在jQuery中通过.post发送数组
- 通过提交表单发送数组
- Javascript - 向函数发送数组数组
- 通过 ajax 向 php 发送数组
- 通过php页面中的url从javascript发送数组,但是
- 通过body onload使用json_encode发送数组对我来说不起作用
- 如何通过javascript/jQuery中的url发送数组
- 如何在expressjs中向html页面发送数组值
- 在jquery get-ajax调用中发送数组数据
- WCF POST通过JQuery.如何在JSON中发送数组
- 通过ajax发送数组
- JavaScript中的Ajax只发送数组中的最后一个数据
- 如何使用JSON在AJAX中发送数组
- 通过ajax post请求发送数组变量