我在调试移动 Safari 的 Web 应用程序时遇到了一些问题。该 Web 应用程序是相当复杂的服务器端模拟工具的前端。该网络应用程序的工作原理概述如下:
- 用户将看到一个屏幕,他们可以在其中填写要执行的模拟的值。
- 用户单击“运行模拟”,此时将对服务器进行 AJAX 调用。页面上的状态窗格已更新,表明模拟正在运行。 php 脚本使用 POSTed 值运行模拟器,并发送回一些 javascript 以首先更新状态栏,指示正在检索数据,然后设置另一个 AJAX 调用来请求结果数据。
- 服务器使用来自模拟的数据回复第二个 AJAX 调用 - 一些 json 格式的大型数组(总数据量约为 1-2mb),以及一些用于清除状态窗格并绘制初始步骤的 JavaScript结果。
- 然后,用户可以使用一些滑块/选项卡来查看不同的绘图、遍历模拟时间步骤等。
所有这些对于主要的桌面浏览器(IE 7+、Firefox(win、mac、linux)、safari(Mac、windows)等)都非常有效。然而,在移动 safari 上,步骤 1 和 2 进展顺利(所有 javascript 都被执行以更新状态窗格等...),但在步骤 3 中一切都崩溃了 - 似乎返回的 javascript 从未执行过(状态窗格)永远不会清除,并且永远不会绘制结果)。
我插入了一些警报进行调试,但这些警报也没有执行。最后,我尝试返回除模拟数据之外的所有内容,并且一切正常(尽管绘图是空白的),因此在返回大量 json 数据时出现了问题。 safari javascript 调试器没有显示任何错误,我不知道如何继续调试这样的东西。有任何想法吗?
我无法告诉您问题的答案,但这是我的调试方法:
- 尝试让服务器只发回几kb的数据
- 看看是否可以打印数据的大小
- 将数据分解为更小、更易于管理的块(无论如何,JSON 都应该很小)
正如我所说,这并不是一个真正的答案。更多的是一种方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)