Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery post大文本数据传输(最终加载)_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jQuery post大文本数据传输(最终加载)

Javascript jQuery post大文本数据传输(最终加载),javascript,jquery,ajax,Javascript,Jquery,Ajax,问题: 我有一个基于jqueryajax(post)的网站,该网站不会在用户每次导航到另一个页面时刷新。这意味着我必须使用ajax提取数据并将其呈现给用户。现在,对于提取小文本数据,这个系统工作得很好。然而,一旦文本数据庞大(比如说超过200000个单词),加载时间就相当长(尤其是对于移动用户)。我的意思是,ajax尝试加载全文信息,并在加载完所有文本后显示它。因此,用户必须等待相当多的时间才能获得信息 如果你看一个不同的场景,比如说维基百科。维基百科上有很多大页面。然而,用户并不觉得他/她需要

问题:

我有一个基于jqueryajax(post)的网站,该网站不会在用户每次导航到另一个页面时刷新。这意味着我必须使用ajax提取数据并将其呈现给用户。现在,对于提取小文本数据,这个系统工作得很好。然而,一旦文本数据庞大(比如说超过200000个单词),加载时间就相当长(尤其是对于移动用户)。我的意思是,ajax尝试加载全文信息,并在加载完所有文本后显示它。因此,用户必须等待相当多的时间才能获得信息

如果你看一个不同的场景,比如说维基百科。维基百科上有很多大页面。然而,用户并不觉得他/她需要等待太久,因为页面是逐步加载的(从上到下)。因此,即使页面很大,用户也会忙于处理一些信息。当用户处理这些内容时,页面的其余部分会继续加载

问题:

那么,是否可以通过ajax显示实时加载的信息呢?意思是继续显示加载的内容,而不是等待加载完整的文档?

Ajax(xmlhttprequest)是html5的一个非常好的特性,同样,Ajax比socket好,我的意思是非持久性连接,但只要连接是持久性的(xmlhttprequest不可能),socket就是

最简单的方法是使用web套接字,但您需要一个JavaScript服务器来使用此库,并且有一个主机可以使用管理工具免费获得一个

如果您不想在库中使用JavaScript服务器,可以使用PHP服务器,但它有点复杂

另外,你可以用不同的方式思考,你尝试发送大量数据。 200000字大约是70ko(我尝试使用lorem ipsum),上传速度与数据和连接速度/ping有关。在发送和解压服务器端之前,您可以通过任何方式压缩数据。可能有上千种方法可以做到这一点,但我认为最简单的方法是找到一个数据,然后简单地使用jQueryAjax发送压缩的内容

编辑-2014年3月21日:

我误解了这个问题,你想显示当前的上传进度吗?
是的,使用onprogress事件是可能的,在jQuery中,您必须遵循这个简单的示例:

据我所知,Wikipedia页面的内容被划分为不同的类别。也许使用单独的调用加载部分内容就可以了?另请看一看。@Michał如果php(或其他服务器端语言)直接为数据服务(不涉及js),我认为问题不会出现。问题主要是当用户必须通过ajax提取数据时。然而,装载零件可能是一个解决方案,但我不确定它是否可持续。在尝试覆盖所有场景时,它可能会增加复杂性。您可以使用OBoEJ,但仅适用于JSON结构化文件中的流式对象如果您想要流式传输HTML,您需要comet服务器,或者看看这一点,这说明了一个简单的替代方案-未经测试,但需要在服务器上进行一些更改(内容类型为八位字节流)你需要更多的帮助吗?