我和你玩得很开心
这是我写的
#import('dart:html');
#import('dart:json');
class ChatClient {
XMLHttpRequest listener;
int parsePosition = 0;
void connect(){
this.listener = new XMLHttpRequest();
this.listener.open("GET", "http://i.target.co.uk:9005/subscribe/test.json", true);
this.listener.setRequestHeader('Accept', 'application/json');
this.listener.on.readyStateChange.add(handleData);
this.listener.send();
}
void handleData(Event event){
print(this.listener.responseText);
/*
if (this.listener.responseText != ""){
Map data = JSON.parse(this.listener.responseText);
print(data["subscribe"]);
}
*/
}
}
void main(){
ChatClient client = new ChatClient();
client.connect();
document.query('#status').innerHTML = 'Loaded!';
}问题是,每次我发布某件东西时,responseText的大小都会像这样
{"subscribe":["subscribe","test",1]}
{"subscribe":["subscribe","test",1]}{"subscribe":["message","test","e"]}
{"subscribe":["subscribe","test",1]}{"subscribe":["message","test","e"]}{"subscribe":["message","test","e"]}现在你不能解析
{"subscribe":["subscribe","test",1]}{"subscribe":["message","test","e"]}{"subscribe":["message","test","e"]}那我该怎么办?你能清除responseText吗?冲洗缓冲器?某物?
编辑:我知道您可以迭代整个字符串或跟踪每个json对象的长度,但是难道没有更干净的方法吗?
编辑:使用新的打印语句
readyStat: 2 status: 200
{"subscribe":["subscribe","test",1]}
readyStat: 3 status: 200
{"subscribe":["subscribe","test",1]}{"subscribe":["message","test","e"]}
readyStat: 3 status: 200发布于 2012-06-22 15:33:36
使用了最终解决方案。
void connect(){
this.listener = new XMLHttpRequest();
this.listener.open("GET", "http://i.h.co.uk:9005/subscribe/test", true);
this.listener.setRequestHeader('Accept', 'application/json');
this.listener.on.readyStateChange.add(handleData);
this.listener.send();
}
void handleData(Event event){
try {
Map data = JSON.parse(this.listener.responseText.substring(this.parsePosition));
this.parsePosition = this.listener.response.length;
var message = data['subscribe'][2];
print("Recieved> $message");
} catch (final e){
}
}https://stackoverflow.com/questions/11156300
复制相似问题