Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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 对于mobile safari,AJAX响应太大?_Javascript_Iphone_Ajax_Mobile Safari - Fatal编程技术网

Javascript 对于mobile safari,AJAX响应太大?

Javascript 对于mobile safari,AJAX响应太大?,javascript,iphone,ajax,mobile-safari,Javascript,Iphone,Ajax,Mobile Safari,我在为mobile safari调试web应用程序时遇到了一些问题。web应用程序是相当复杂的服务器端模拟工具的前端。web应用程序的工作原理概述如下: 将向用户显示一个屏幕,用户在其中填写要执行的模拟的值 用户单击“运行模拟”,此时会向服务器发出AJAX调用。页面上的状态窗格将更新,指示模拟正在运行。php脚本使用发布的值运行模拟器,并发回一些javascript,以首先更新指示正在检索数据的状态栏,然后设置另一个AJAX调用以请求结果数据 服务器使用来自模拟的数据响应第二个AJAX调用—一些

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

  • 将向用户显示一个屏幕,用户在其中填写要执行的模拟的值
  • 用户单击“运行模拟”,此时会向服务器发出AJAX调用。页面上的状态窗格将更新,指示模拟正在运行。php脚本使用发布的值运行模拟器,并发回一些javascript,以首先更新指示正在检索数据的状态栏,然后设置另一个AJAX调用以请求结果数据
  • 服务器使用来自模拟的数据响应第二个AJAX调用—一些json格式的大型数组(总数据量为1-2mb),以及一些javascript以清除状态窗格,并绘制结果的初始步骤
  • 然后,用户可以使用一些滑块/选项卡来查看不同的绘图、遍历模拟时间步长等
  • 所有这些对于主要的桌面浏览器(IE 7+、Firefox(win、mac、linux)、safari(mac、windows)等)都非常有效。然而,在mobile safari上,第1步和第2步进展顺利(所有javascript都会被执行以更新状态窗格等),但在第3步,一切都会分崩离析——似乎从未执行返回的javascript(状态窗格从未清除,结果也从未打印)


    我已经插入了一些要调试的警报,但这些警报也没有执行。最后,我尝试返回除模拟数据之外的所有数据,并且所有数据都正常工作(尽管图是空白的),因此在这个json数据的大返回中出现了一些错误。SafariJavaScript调试器没有显示任何错误,我不知道如何继续调试类似的东西。有什么想法吗?

    我无法告诉您问题的答案,但我将如何调试:

    • 尝试让服务器只发回几kb的数据
    • 看看是否可以打印数据的大小
    • 将数据分解成更小、更易于管理的块(JSON无论如何都是小的)

    不是我说的答案。更多方法。

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

    • 尝试让服务器只发回几kb的数据
    • 看看是否可以打印数据的大小
    • 将数据分解成更小、更易于管理的块(JSON无论如何都是小的)

    不是我说的答案。更多方法。

    Safari(移动和桌面)存在一个已知问题,将AJAX响应大小限制在512K左右。

    Safari(移动和桌面)存在一个已知问题,将AJAX响应大小限制在512K左右。

    之后数据会发生什么?如果以某种方式将1-2MB数据导入DOM中,听起来会很多。数据会传递给使用Raphaël创建的自定义绘图对象(绘图有一个时间滑块,因此可以在模拟中的时间t看到模拟结果)。所以在任何给定的时间,只有大约10-20k的数据被使用。这就是说,由于时间滑块可用于为模拟结果设置动画,因此数据流可能无法正常工作。到目前为止,我已经能够使用超过10-20mb的数据以这种方式进行绘图(尽管只在本地服务器上使用浏览器,并且只使用Desktop浏览器),之后数据会发生什么?如果以某种方式将1-2MB数据导入DOM中,听起来会很多。数据会传递给使用Raphaël创建的自定义绘图对象(绘图有一个时间滑块,因此可以在模拟中的时间t看到模拟结果)。所以在任何给定的时间,只有大约10-20k的数据被使用。这就是说,由于时间滑块可用于为模拟结果设置动画,因此数据流可能无法正常工作。到目前为止,我已经能够以这种方式使用10-20mb以上的数据进行绘图(尽管仅在本地服务器上使用浏览器,并且仅使用Desktop浏览器),感谢您提供的提示。我继续进行,并将模拟缩短为只运行几个时间步。似乎在返回的512k数据下,一切都正常运行。目前有三个json数组被返回,所以在总计1mb的json数组中,每个大约是350k。MobileSafari似乎有一些上限可以处理——但不确定是数据块大小还是总数据大小。这篇文章可能会给你一些启示:如果你进入“智能手机,微型大脑”一节,它说总容量有10Mb的限制——我猜你达到了。谢谢你的提示。我继续进行,并将模拟缩短为只运行几个时间步。似乎在返回的512k数据下,一切都正常运行。目前有三个json数组被返回,所以在总计1mb的json数组中,每个大约是350k。MobileSafari似乎有一些上限可以处理——但不确定是数据块大小还是总数据大小。这篇文章可能会给你一些启示:如果你转到“智能手机,微型大脑”部分,它会说总容量有10Mb的限制——我猜你达到了。你有这方面的来源吗?有这方面的资源吗?你有这方面的资源吗?有这方面的资源吗?有这方面的资源吗?