当前位置: 首页 > 面试题库 >

jQuery逐步读取AJAX流?

相高谊
2023-03-14
问题内容

我已经阅读了这个问题,但并不能完全回答我的问题。不幸的是,自从我上次查看AJAX以来,XHR对象中的一切似乎已经发生了变化,因此不再可能responseText在完成填充之前直接访问它。

我必须编写一个页面,该页面使用AJAX(最好是jQuery,但我愿意接受建议)从无法控制的服务器通过HTTP检索CSV数据。响应数据可能会很大;一兆字节的文本并不罕见。

服务器是流友好的。在直接从JavaScript返回数据流时,还有什么方法可以访问它?

我确实可以选择编写一些PHP代码,这些代码位于中间,并使用某种“彗星”技术(长轮询,EventSource等),但我希望尽可能避免这种情况。

如果相关,请假设用户具有Firefox / Chrome / Opera的最新版本,并且与旧浏览器的兼容性不是问题。


问题答案:

您将要为此直接使用JavaScript。原因是您将要连续轮询而不是等待回调触发。您不需要jQuery,这非常简单。他们在Ajax
Patterns网站上
有一些不错的源代码。

本质上,您只想跟踪响应中的最后一个位置,并定期轮询该位置之后的更多文本。您的情况不同之处在于,您可以订阅complete事件并停止轮询



 类似资料:
  • bufferedinputstream(BIS)比FileInputStream(FIS)快的原因请参见“为什么使用bufferedinputstream逐字节读取文件比使用FileInputStream快?”?是吗 使用BufferedInputStream,该方法委托给重载read()方法,该方法读取8192个字节,并在FIS读取单个字节时缓冲它们,直到需要它们 据我所知,磁盘是一个“块设备”

  • 问题内容: 我有一个.gz格式的文件。读取此文件的Java类是GZIPInputStream。但是,此类不会扩展Java的BufferedReader类。结果,我无法逐行读取文件。我需要这样的东西 尽管我创建了扩展java的Reader或BufferedReader类并使用GZIPInputStream作为其变量之一的类。 但是,这在我使用时不起作用 有人可以建议如何进行.. 问题答案: 装饰器的

  • 稳定性: 2 - 稳定的 require('readline') 模块提供了一个接口,用于从可读流(如 process.stdin)读取数据,每次读取一行。 它可以通过以下方式使用: const readline = require('readline'); 例子,readline 模块的基本用法: const readline = require('readline'); const rl

  • Java函数都有一个严重的限制,即它的使用者不可能抛出检查过的异常。因此,我想逐个访问Stream的元素。 我想这样做: 然而,是一种短路终端操作。也就是说,它关闭了河流。这段代码会在while循环的第二次迭代中崩溃。我不能简单地将所有元素放在一个数组中,然后逐个检查该数组,因为可能有数千万个元素。 请注意,我不是在问如何从中抛出异常。这个问题已经得到了回答。

  • 问题内容: 我想逐个读取文件。该文件分为几部分,分别存储在不同类型的媒体上。我目前要做的是调用文件的每个单独部分,然后将其合并回原始文件。 问题是我需要等到所有块都到达后才能播放/打开文件。是否有可能在块到达时读取块,而不是等待它们全部到达。 我正在处理媒体文件(电影文件)。 问题答案: 您要的是源数据线。当数据太大而无法一次将其保存在内存中时,这是完美的选择,因此您可以在接收整个文件之前开始播放

  • 我正在努力阅读附加的TXT文件,以csv形式显示从文件中读取的每个字段,我做了一个接近我想要的代码,但我没有前进。 TXT文件格式: 我的代码在我想要的位置读取第一行,但下面的行我不能,更不用说重复文件中包含的下一个工资单的读数了。 目前的输出是这样的: 出口应该是怎样的 逐行读取和捕获数据,我必须完成一个工资单,它将在输出中形成一行,第二个工资单将在输出中形成第二行,因此,直到txt文件结束,此