1

我正在创建一个移动网站并使用 jQuery Mobile 插件。在页面中,我需要通过 ajax 调用服务并且它是同步的,当请求发送并有响应时,应该显示加载消息

它适用于Firefox,但适用于Chrome或移动设备(iOS 上的 safari),加载消息无法显示,我已将 asynch 更改为 false 以使其正常工作,这不是我所期望的

以下是我的草稿代码

function callService() {
    $.mobile.showPageLoadingMsg();
    $.ajax({
        url: 'testservice',
        async: false,
        success: function(result) {
            // Dosomething
        }
    });
    $.mobile.hidePageLoadingMsg();
}

有人有同样的问题吗?对此案的任何建议

- - 更新 - -

我在 jsfiddle http://jsfiddle.net/ndkhoiits/jvqQJ/上添加示例

4

1 回答 1

1

我认为您应该查看将在 ajax 请求完成之前和之后调用的 beforeSend() 和 complete() 函数,例如:

function callService() {

$.ajax({
    url: 'testservice',
    beforeSend: function() {
        $.mobile.showPageLoadingMsg();
    },
    complete: function() {
        $.mobile.hidePageLoadingMsg();
    }
    async: false,
    success: function(result) {
        // Dosomething
    }
});
$.mobile.hidePageLoadingMsg();

}

jQuery.ajax()上的文档

于 2012-12-17T08:11:50.880 回答