- 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/
我正在尝试使用 Ajax,并使用以下代码。 var r = new XMLHttpRequest(); r.open("POST", "pythonTesting.php", true); r.onr
我的 JSON.parse 有问题。在我将 API 调用从 request 更改为 request.Promise.get 后,我收到一个错误 - TypeError: Cannot read pro
我的代码- document.getElementById("lblmsg").innerHTML=xmlhttp.responseText; if(xmlhttp.r
在我的代码中,responseText 不工作。它应该显示,在文本框中输入的文本+“:您的请求已被syam看到” var xmlHttp
我正在尝试使用 Ajax 和 PHP 将数据插入数据库。现在的问题是 responseText 不返回任何消息,但插入成功完成这是我的脚本 function aa() {
我正在使用 ajax 从我的 php 解析器检索 json_encode() 数组。 响应文本为["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"] 如果
我玩得很开心 Redis 网盘 Dart 这是我写的 #import('dart:html'); #import('dart:json'); class ChatClient { XMLHttpR
我的 servlet 响应一个包含“false”或“true”的字符串=> Servlet 代码:out.println(validusername); validusername 是来 self 的
我正在使用 jquery get 来调用 ASP MVC Controller 。它返回部分 View 。即一堆 html 如果出现错误,我想为用户填充一些信息,但 ASP MVC 正在发送回整个页面
以下形式成功发送数据到MySQL db。但它无法显示 div 内的responseText .我怎样才能得到回复? First Name Password Ajax Respons
这让我很困惑。我有一个 url 数组(用于数据),我需要将其拉入页面并在全部加载后处理结果。我正在尝试使用 JQuerys Defered 功能来确保在处理结果之前所有 ajax 调用都已完成。一旦我
我无法将准确的字符串与我的 AJAX 脚本的结果进行比较。出于某种原因,我的 if 语句总是失败。通过删除 if 测试,我可以看到返回了正确的值(“成功”),但是当我保留它时,它的计算结果为 fals
我正在将我的表单数据发布到谷歌电子表格(它正在运行,但我无法收到回复)并试图返回已发送的值。电子表格有 3 个标题 - 名称、图像、结果。每当我发送表单数据时,我都可以在正确的标题下将值写入电子表格,
这个问题在这里已经有了答案: How do I return the response from an asynchronous call? (41 个回答) 关闭 5 年前。 我正在尝试使用 aj
我想在网页中显示在 ajax 请求的错误部分中我的 .NET 代码中引发的异常消息: [HttpPost] [AllowAnonymous] public virtual ActionResult A
这段代码有问题;返回值返回为“未定义”。有什么问题? var fx = null; xmlhttp.open("GET", URL ,false); xmlhttp.onreadystatechang
我是 JavaScript 新手。我需要测试 XMLHttpRequest.responseText 的输出在给定的 URL 上。最简单的方法是什么? var url = "http://m.goog
HTML 页面: xhr var xhr_test = new XMLHttpRequest(); xhr_test.open("
我会尽力解释我的问题,但说实话,我自己也有点困惑,所以我无法想象这对你们来说会容易得多。 对,我正在为我经常访问的网站的用户脚本创建一个脚本。我想做的是劫持任何ajax请求,我做得很好,然后修改res
如何拆分从数据库接收的 xmlhttp.responseText 逐行选择?我的数据库布局包含 3 列,我想将其移交给函数。 响应文本如下所示: 75px, 218px, foo, 12px, 13p
我是一名优秀的程序员,十分优秀!