短版:寻找一种方法来等待非同步XHR请求或方式来获得同步XHR在Safari工作。
更长的版本:我正在使用一起捣碎各种外部数据源的Web服务。 我使用的是Javacript前端,这使得AJAX / XHR调用我的PHP服务器代码。 有没有跨站点问题作为客户端只能从我的服务器(服务器使外部数据请求)请求数据。
我使用同步XHR请求作为我有一些负载后处理(排序,筛选等)被呈现在屏幕上之前,对数据做。
这一切工作正常的IE浏览器,FF和Opera,但似乎是Safari浏览器有问题(我没有尝试过Chrome浏览器还)。
我的Windows机器上使用Firebug的Safari浏览器,我可以看到服务器调用绷进行,然后在它上面10秒的时间后失败。 在我的iPad的消息是稍微尤为明显,因为它说:NETWORK_ERR:XMLHttpRequest的异常101:在同步模式下出现网络错误。
研究的一个位表示Safari会在同步模式下10秒后超时。 似乎有一个超时功能,超时功能,您可以使用扩展这个(与60秒的Safari最大限制)。 不幸的是,我不能得到这个工作。
现在我不知道什么人会建议通过修改客户Javacript代码解决此工作的最佳途径。
这两个选项,我想是(我)找到了同步XHR超时是Safari浏览器上会兑现的工作示例; 或(ii)具有某种围绕非同步XHR呼叫包装的,使得负载的后处理为负载等待第一个。
我不是一个particulalry经验的JavaScript的黑客,但我已经安装在这个项目上有相当数量。 我没有使用JQuery的或其他任何框架,并希望保持与原JS只是为了避免学习额外的语法。 [你可以从我以前的帖子看到我尝试使用过去JQM和轻快,但都被证明是错误的选择,在这个阶段,至少,至今已被抛弃现在。
给我的感觉回调可能是正确的等待换asych选择,但我不知道这是如何工作或你将如何编写它。
这仅仅是在这个阶段的原型,那么脏的黑客是可以接受的。 完全重新写已经在卡后来一旦我已经证明功能。
欣赏这个人民的想法和建议。
问候,皮特。