jquerymobile与骨干显示加载微调器

时间:2012-12-21 06:53:41

标签: jquery jquery-mobile backbone.js

我正在使用jQuery mobile with backbone

我已禁用jquery移动路由并使用一切运行正常的主干

这是配置

define(['jquery'], function($){

$(document).bind("mobileinit", function () {
    $.mobile.ajaxEnabled = false;
    $.mobile.linkBindingEnabled = false;
    $.mobile.hashListeningEnabled = false;
    $.mobile.pushStateEnabled = false;
    // Remove page from DOM when it's being replaced
    $('div[data-role="page"]').live('pagehide', function (event, ui) {
        $(event.currentTarget).remove();
    });
});
});

然后在我的ajax上调用我的观点我使用这段代码

     $.ajax({
            beforeSend: function() { $.mobile.showPageLoadingMsg(); },
            url: this.template,
            dataType: 'html',
            async: false,
            success: function(data) {
                compiled = _.template(data);
                $.mobile.hidePageLoadingMsg();
            }
        });

这显示firefox中的加载程序很好,但在chrome或我的ios设备上不起作用?

任何人都可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:1)

Chrome / safari / android / iOS等Webkit浏览器在jQM和async:false ajax调用方面存在问题。当ajax调用正在处理时,它们将被锁定。无论出于何种原因,Firefox都没有这样的问题。

变化:

async: false,

为:

async: true,

如果async:false对您的应用功能至关重要,并且您希望在ajax工作时阻止用户互动,则在整个应用上显示透明的div叠加层。在beforesend状态下执行,并在成功或失败状态下将其删除。