使用ajax时javascript循环行为不稳定
控制台数据如下所示:使用ajax时javascript循环行为不稳定,javascript,ajax,json,Javascript,Ajax,Json,控制台数据如下所示: window.addEventListener('load',function(){ var last=0; var sub=document.getElementById("sub"); var msg=document.getElementById('msg'); var msg_bx=document.getElementById("msg_bx"); var re=new XMLHttpRequest(); re.open("GET","handler.ph
window.addEventListener('load',function(){
var last=0;
var sub=document.getElementById("sub");
var msg=document.getElementById('msg');
var msg_bx=document.getElementById("msg_bx");
var re=new XMLHttpRequest();
re.open("GET","handler.php?mode=begin",true);
re.onreadystatechange=function(){
if(re.status==200 && re.readyState==4){
//console.log(re.responseText);
var data=JSON.parse(re.responseText);
if(data.err_msg){
alert(data.err_msg);
}
else {
for(var o in data){
struct(data[o]);
}
}
}
}
re.send(null);
function struct(data){
s=data.sender;
m=data.msg;
t=data.time;
i=data.id;
var bx=document.createElement("div");
bx.className="msg";
msg_bx.appendChild(bx);
var sen=document.createElement("div");
bx.appendChild(sen);
sen.appendChild(document.createTextNode("Sent by:"+s));
var msg=document.createElement("div");
bx.appendChild(msg);
msg.appendChild(document.createTextNode(m));
if(i>=last){
last=i;
}
console.log(i+" "+last);
}
});
循环在9之后停止递增。
struct函数用于生成基本结构,当数据以json的形式出现时调用。
最后一个随i值递增,直到它达到9,然后由于某种原因变为常数,即使i在增加这是因为“10”>=“9”
在Javascript中是false
我怀疑data.id
是一个字符串。这使得i
和last
也成为字符串,在比较i>=last
期间,它们作为字符串进行比较
您可以在比较它们之前将其转换为数字:
i=+data.id然后10>=9
将是true
为什么会有这么多的代码和一个不可理解的问题?
2 2 chat.js:64
3 3 chat.js:64
4 4 chat.js:64
5 5 chat.js:64
6 6 chat.js:64
7 7 chat.js:64
8 8 chat.js:64
9 9 chat.js:64
10 9 chat.js:64
11 9 chat.js:64
{"count1":{
"id":"2",
"sender":"1",
"msg":"bbfkjvndk?",
"time":"1386494886"
},"count2":{
"id":"3",
"sender":"1",
"msg":"bubjhadljlkvdjovjj;ojkd?",
"time":"1386494931"
},"count3":{
"id":"4",
"sender":"1",
"msg":"vidhu?",
"time":"1386494982"
},"count4":{
"id":"5",
"sender":"1",
"msg":"bvfiuefhilnfdigvfuodahfasviubjcabsyvgUVHJVKJFHV9dhf79gvhkebfvkjhdovi;h7zv9jvhdsbviy7dg89hvdsbyuavgd?",
"time":"1386495013"
},"count5":{
"id":"6",
"sender":"1",
"msg":"what the hel??",
"time":"1386495367"
},"count6":{
"id":"7",
"sender":"1",
"msg":"?",
"time":"1386497097"
},"count7":{
"id":"8",
"sender":"1",
"msg":"?",
"time":"1386497097"
},"count8":{
"id":"9",
"sender":"1",
"msg":"what do u want with me??",
"time":"1386506545"
},"count9":{
"id":"10",
"sender":"1",
"msg":"so g otbjobjsd?",
"time":"1386506554"
},"count10":{
"id":"11",
"sender":"1",
"msg":"what the hell??",
"time":"1386507581"
}} chat.php:13