Javascript 在移动浏览器中测试AJAX

Javascript 在移动浏览器中测试AJAX,javascript,jquery,ajax,mobile,mobile-website,Javascript,Jquery,Ajax,Mobile,Mobile Website,我正在构建一个移动web应用程序,它可能依赖于ajax,也可能不依赖于ajax,这取决于用户的浏览器是否支持javascript。因为我使用的是JQuery,所以在启用AJAX功能之前,我希望确保移动浏览器通过JQuery支持AJAX 由于Opera Mini呈现页面的方式,我遇到了一个问题,我不知道如何检查它。下面是我用来测试AJAX的代码: $(document).ready(function () { $.get( 'test.txt', funct

我正在构建一个移动web应用程序,它可能依赖于ajax,也可能不依赖于ajax,这取决于用户的浏览器是否支持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

另外,如果您想在Opera Mini中测试您的解决方案,这里有一个功能齐全的模拟器:


[编辑]我应该提到,这个应用程序需要使用setInterval大约每分钟进行一次ajax调用,因此,即使Opera Mini在onclick触发时支持一些ajax,我不相信有任何方法可以让它支持在特定时间间隔进行的ajax调用。如果我们可以对此进行测试,这可能会解决上述问题。

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

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


这里有更多信息。

您并不是在问移动浏览器是否支持ajax,而是问移动浏览器是否通过jquery支持ajax。差别很大,我想你是对的。据我所知,Opera Mini执行脚本大约2秒钟,然后停止并交付页面。因此,在大约2秒钟的时间内,页面功能完全正常,这意味着在此期间发生的任何测试都将呈现不正确的结果。opera mini服务器执行脚本并执行请求,然后将其发送到移动客户端。因此,在这种情况下,唯一的选择是通过用户代理直接识别它并禁用ajax功能。