手机游戏的AJAX响应太大了?

时间:2010-07-15 17:01:01

标签: javascript iphone ajax mobile-safari

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

  1. 向用户显示一个屏幕,其中填写了要执行的模拟的值。
  2. 用户点击“运行模拟”,此时对服务器进行AJAX调用。页面上的状态窗格已更新,表示正在运行模拟。 php脚本使用POSTed值运行模拟器,并发回一些javascript以首先更新状态栏,指示正在检索数据,然后设置另一个AJAX调用以请求结果数据。
  3. 服务器使用来自模拟的数据回复第二次AJAX调用 - 一些json格式的大型数组(大约1-2mb的总数据),以及一些用于清除状态窗格的javascript,以及绘图结果的第一步。
  4. 然后,用户可以使用一些滑块/标签查看不同的图表,完成模拟时间步骤等。
  5. 所有这些都适用于主要的桌面浏览器(IE 7 +,Firefox(win,mac,linux),safari(Mac,windows)等)。但是,在移动safari上,步骤1和2正常(执行所有javascript以更新状态窗格等等)但是在步骤3中一切都崩溃了,好像返回的javascript永远不会被执行(状态窗格)永远不会清除,结果永远不会被绘制出来。)

    我已经为调试插入了一些警报,但这些警报也没有执行。最后,我尝试返回除模拟数据之外的所有内容,并且一切正常(虽然这些图是空白的)所以在json数据的大量返回中它是错误的。 safari javascript调试器没有显示任何错误,我不知道如何继续调试这样的事情。任何想法?

2 个答案:

答案 0 :(得分:0)

我无法告诉你问题的答案,但这是我调试的方式:

  • 尝试让服务器只发送几kb的数据
  • 查看您是否可以打印数据大小
  • 将数据细分为更小的更易于管理的块(JSON意味着很小)

不是真的答案,就像我说的那样。更多的方法。

答案 1 :(得分:0)

Safari(包括移动设备和桌面设备)存在一个已知问题,它将AJAX响应大小限制为大约512K。