私は古き良き遊びをしています
- レディス
- ウェブディス
- ダーツ
私はこれを書きました
#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