一尘不染

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

ajax

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

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

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

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


阅读 222

收藏
2020-07-26

共1个答案

一尘不染

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

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

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

2020-07-26