- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我玩得很开心
这是我写的
#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
最佳答案
编辑 2:这个stack overflow问题和readyState变化有类似的问题: Ajax readystate 3 (Chrome / IE) - 我正在努力寻求更体面的帮助。
编辑:我想我已经把你带到了花园小径上 - ajax 请求的响应状态表明 (3) 它仍在加载/接收信息。
这并不直接适用于您的问题,但我觉得这是问题的一部分。
我快速扫描了 http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/我发现:`readyState of type unsigned short, readonly对象的状态。该属性必须是以下值之一:
0 Uninitialized
The initial value.
1 Open
The open() method has been successfully called.
2 Sent
The UA successfully completed the request, but no data has yet been received.
3 Receiving
Immediately before receiving the message body (if any). All HTTP headers have been received.
What about HEAD requests?
4 Loaded
The data transfer has been completed.
所以在第 3 阶段,我们有 responseText
保存部分数据。
来自 http://jszen.blogspot.co.uk/2005/03/xmlhttp-and-readystate.html :
... the URI /some/uri can establish a persistent connection, which means that unless the connection is terminated by the script or the server, readyState will always be 3 (interactive). According to the docs, I should be able grab the incomplete response from the server at this time, but apparently not ...
在 msdn 上,我发现了这个 http://msdn.microsoft.com/en-us/library/ie/ms534361(v=vs.85).aspx :
You cannot call responseBody and responseText properties to obtain partial results (readyState = 3). Doing so will return an error, because the response is not fully received. You must wait until all data has been received.
void handleData(Event event){
print(this.listener.responseText);
int a = this.listener.readyState;
int b = this.listener.status;
print("readyStat: $a status: $b");
if (this.listener.readyState == 4 && this.listener.status == 200) {
if (this.listener.responseText != ""){
Map data = JSON.parse(this.listener.responseText);
print(data["subscribe"]);
}
}
}
在接收者对象上,您将拥有一个 readyState 和一个状态。如果您等到它们处于完成状态 readyState == 4
和 status==200
,您的数据可能在完成时完成。
这是未经测试的,因为我没有合适的环境来测试它
关于javascript - 努力解析 responseText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11156300/
我正在尝试为我的项目创建一些单元测试,经过大量挖掘之后,我发现了Effort,这个想法很棒,它模拟数据库而不是处理伪造的DBContext,顺便说一句,很难做到正确使用复杂的架构。 但是,我将用户的电
我正在尝试对某些响应 Entity Framework 数据库上下文的类进行单元测试。为了寻求帮助,我设法找到了一个名为 Effort 的库,它似乎有点旧,而且没有很好的文档记录,但它似乎可以工作,而
这两天,Auto-GPT 爆火 https://github.com/Torantulino/Auto-GPT 它是一款让最强语言模型GPT-4能够自主完成任务的模型,让整个AI圈疯
为什么会出现这个异常?这是错误吗? 我正在使用 EF 测试库 Effort 创建我的数据库的内存实例并遇到这个有趣的场景: 打开DbContext1 将项目添加到表(不保存) 关闭DbContext1
我是一名优秀的程序员,十分优秀!