提问人:Blank 提问时间:11/4/2008 更新时间:12/27/2009 访问量:17359
iPhone 上的 AJAX?
AJAX on the iPhone?
问:
我开发了一个网站,它很好地使用了 Javascript,并且很少使用 AJAX 来做一些事情。该网站在 iPhone 上运行良好,直到我添加了创建 HttpRequest 句柄的函数,此时 iPhone 上的所有 Javascript 现在都静默失败。所以,我有几个问题。
(1)AJAX似乎在iPhone上根本不起作用。这是真的吗?如果没有,如何修改 HttpRequest 创建函数以适应 iPhone?
(2) 如果 AJAX 在 iPhone 上确实是不可能的,我有没有办法修改给定的功能,使其在 iPhone 上正常失败,而页面上的其他脚本仍然可以运行?
(3)如果这不是真的,我需要做什么服务器端(这是否可能?)检测iPhone,以便在iPhone请求页面时完全删除AJAX代码?
同样有效的是,使用CSS将iPhone检测为显示设备,并采取相应的行动,类似于您在Opera Show中使用的功能。当然,这并不能解决 AJAX 问题,但它会很整洁。^_^
谢谢你的回答。我的一些客户经常从 iPhone 访问该网站,我希望我的页面尽可能多地工作,所以我愿意为它修改我的代码,即使我没有可以测试的代码。
答:
AJAX没有理由不能在iPhone上运行,许多Google的网站/ Facebook等都很好地使用它。
您的 AJAX 可以在 Safari/Mac 中工作吗?这是您在非移动环境中获得的最接近的近似值。
我想你的 javascript 中某个地方有一些错误,你只是没有发现
评论
当然,iPhone 支持 ajax,请查看 http://developer.apple.com/webapps/ 以获取用于开发 iPhone Web 应用程序的一堆资源。我建议使用一个框架(例如jQuery或iUI(用于ui))而不是推出自己的ajax功能,它已经解决了许多浏览器怪癖并进行了优化。
评论
调试控制台是解决设备上此类 JavaScript 错误的一个有用资源。它应该报告任何解析错误,也可用于记录消息和异常。您可以从 Safari > Developer >“设置”中打开它(滚动到底部)。
Aax 在 iPhone 上完美运行,即使是我们最先进的东西,如 Ajax Calendar Starter-Kit,至少在我的 iPhone (3G) 上也能完美运行
AJAX工作得很好。如果你想要一个小型的、简单易用的 AJAX 包装器,你应该查看 https://sourceforge.net/projects/quickconnect/。它包含一个名为 ServerAccessObject 的包装器,可在 ServerAccessObject,.js 文件中找到。
QuickConnectiPhone 的开发博客位于 http://tetontech.wordpress.com
我最近使用 jQuery 遇到了同样的问题,但这是 Safari Mobile 的行为问题所在。也许在你的情况下也是如此。
将ajax url从“http://the/full/url”缩短为“/just/the/relative/to/root/part”
顺便说一句,最初在这里找到解决方案的是@pillsbur:
评论