在移动浏览器中测试AJAX

时间:2009-11-02 21:45:42

标签: javascript jquery ajax mobile mobile-website

我正在构建一个可能依赖或不依赖于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调用。如果我们可以测试一下,这可能会解决上面的问题。

1 个答案:

答案 0 :(得分:0)

Opera Mini是否在Opera的服务器上检索Web请求以呈现页面,然后以减少的功能将输出(以图像和文本的形式)传递给目标?由于Opera Mini Server服务器场上的渲染发生,因此客户端和Web服务器之间没有真正的来回通信,因此您实际上无法执行ajax。

您可能需要另一种方法来执行Opera Mini的检查,查看“Opera Mini / 1.2”的用户代理将是理想的选择。至于对移动浏览器执行检查,它取决于移动浏览器提供的功能的范围。有时您无法检查并且必须按名称提取特定的移动浏览器。

此处有更多信息Designing With Opera Mini in Mind