我正在构建一个可能依赖或不依赖于ajax的移动Web应用程序,具体取决于用户的浏览器是否支持javascript。由于我使用的是JQuery,我想确保移动浏览器在启用我的AJAX功能之前通过JQuery支持AJAX。
我遇到Opera Mini的问题,因为它呈现页面的方式,我不知道如何检查它。这是我用来测试AJAX的代码:
$(document).ready(function () {
$.get(
'test.txt',
function() {
init_ajax();
}
);
});
其中init_ajax()启用我的ajax功能并禁用我的静态功能。
问题是,Opera Mini在将页面输出到浏览器之前成功运行此代码,但是ajax实际上并不在渲染页面上运行。我尝试在setTimeout而不是document.ready中运行此函数,但遇到了同样的问题。
是否有通用的方法来准确测试移动浏览器中是否存在AJAX?
P.S。如果您想在Opera Mini中测试您的解决方案,那么这里有一个功能齐全的模拟器:
http://www.opera.com/mini/demo/
[编辑]我应该提一下,这个应用程序需要使用setInterval每分钟大约进行一次ajax调用,所以即使Opera Mini在onclick触发时支持某些ajax,我也不相信有任何办法使其支持以特定间隔进行的ajax调用。如果我们可以测试一下,这可能会解决上面的问题。
答案 0 :(得分:0)
Opera Mini是否在Opera的服务器上检索Web请求以呈现页面,然后以减少的功能将输出(以图像和文本的形式)传递给目标?由于Opera Mini Server服务器场上的渲染发生,因此客户端和Web服务器之间没有真正的来回通信,因此您实际上无法执行ajax。
您可能需要另一种方法来执行Opera Mini的检查,查看“Opera Mini / 1.2”的用户代理将是理想的选择。至于对移动浏览器执行检查,它取决于移动浏览器提供的功能的范围。有时您无法检查并且必须按名称提取特定的移动浏览器。