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

手机浏览器的AJAX响应太大?

司徒杜吟
2023-03-14
问题内容

在调试用于移动Safari的Web应用程序时遇到了一个问题。该Web应用程序是相当复杂的服务器端仿真工具的前端。Web应用程序的工作原理概述如下:

  1. 向用户显示一个屏幕,在屏幕上他们填写要执行的模拟的值。
  2. 用户单击“运行模拟”,此时将对服务器进行AJAX调用。页面上的状态窗格将更新,指示正在运行模拟。一个php脚本使用POSTed值运行模拟器,并发送回一些javascript以首先更新状态栏,指示正在检索数据,然后设置另一个AJAX调用以请求生成的数据。
  3. 服务器使用来自模拟的数据答复此第二个AJAX调用-几个json格式的大html" target="_blank">数组(约占总数据的1-2mb),以及一些JavaScript来清除状态窗格并绘制初始步骤结果。
  4. 然后,用户可以使用一些滑块/选项卡查看不同的图,遍历模拟时间步长等。

所有这些功能对于主要的台式机浏览器(IE 7
+,Firefox(Win,Mac,Linux),Safari(Mac,Windows)等)都非常有效。但是,在移动浏览器上,第1步和第2步运行良好(执行了所有javascript以更新状态窗格等。),但在第3步中一切都崩溃了,似乎返回的javascript从未执行过(状态窗格永远不会清除,永远也不会绘制结果)。

我插入了一些要调试的警报,但也未执行。最后,我尝试返回除模拟数据以外的所有内容,并且一切正常(尽管图为空白),所以在返回如此大的json数据时出现了问题。野生动物园javascript调试器没有显示任何错误,我也不知道如何继续调试类似的东西。有任何想法吗?


问题答案:

我无法告诉您问题的答案,但是下面是我的调试方法:

  • 尝试使服务器仅发送回几kb的数据
  • 查看是否可以打印数据大小
  • 将数据分解为更小,更易于管理的块(无论如何,JSON都应该很小)

就像我说的,这并不是一个真正的答案。更多方法。



 类似资料:
  • 问题内容: 我想在javascript /浏览器中启用ajax响应的缓存。 从jquery.ajax docs : 默认情况下,始终发出请求,但浏览器可能会在其缓存之外提供结果。要禁止使用缓存的结果,请将cache设置为false。如果自上次请求以来未修改资产,则导致请求报告失败,请将ifModified设置为true。 但是,这些地址都没有强制缓存。 动机: 我想在我的初始化函数中放入调用,其中

  • 我尝试使用ETAG从api请求缓存json响应。我调用类似http://localhost:3000/api/config的代码,并获取: Thx响应。

  • 问题内容: 我正在通过jQuery的getJson()调用跨域Web服务。由于响应对象的大小很大,因此我在Web服务中使用了最大的JSon大小。我已经检查过getJson()提供正确的响应对象。但是仍然没有调用我的回调函数。Firebug表示已超过(firefox)响应大小。 谁能告诉我标准浏览器(例如,Firefox)处理的最大浏览器响应大小限制是多少,以及如何处理该问题? 这是相同的代码段。

  • 出于某种原因,如果我通过浏览器或MockMVC测试类访问Spring控制器,它会返回不同的响应。有人能帮我找出原因吗? 首先控制器方法: 显然,里面有一些未知的类扩展了,并包含一个名为的列表。这还扩展了。 当我通过浏览器访问代码时,我会得到以下内容: 看起来我很顺从。但当我通过MockMVC请求时。。。 响应中没有HATEOAS兼容元素,因此我的测试在jsonPath检查中失败: 我已经尝试过为M

  • 我添加了Sha-1和Sha-256指纹,还添加了以下依赖项 实现平台('com.google.firebase:firebase bom:26.3.0')实现'com。谷歌。firebase:firebase auth' 并且还在云控制台中启用了Android设备验证API。 使用firebase phone auth时仍会打开浏览器-请帮助

  • 我有一个html页面,在一个android应用程序中使用。从这个页面,我需要张贴数据到服务器和响应是一个附件,需要下载。我为此目的使用了隐藏的iframe黑客。但不幸的是它的失败。谁能解释一下根本原因吗?