l***@brain-c.com
l***@brain-c.com
  • 发布:2018-04-23 04:06
  • 更新:2018-04-23 17:02
  • 阅读:1518

關於ajax 搭配 mui(btnElem).button('loading'); 的問題

分类:MUI
  1. async 為true 的情況下,beforeSend,complete 生效

button 會進入loading.... 并在回饋後進行reset

  1. async 為false的情況下,不論是在ajax 內外執行mui(btnElem).button('loading')
    button 都不會進入loading狀態
    但如果沒有做 mui(btnElem).button('reset')
    在ajax 資料取回後,會持續的loading...

我要怎麼在同步的情況下,讓button 可以進入loading?

2018-04-23 04:06 负责人:无 分享
已邀请:
追梦随想

追梦随想

这个跟ajax关系不大,你在执行异步请求之前就执行 mui(btnElem).button('loading');,这样是没问题的,会有loding效果

l***@brain-c.com

l***@brain-c.com (作者) - 不务正业的男人

我就是没生效才有这疑问啊....

追梦随想

追梦随想

贴代码

l***@brain-c.com

l***@brain-c.com (作者) - 不务正业的男人

  1. 如果在success 中沒有加上 mui(btnElem).button('reset') 在ajax 執行完畢後,會持續顯示 loading...,表示 mui(btnElem).button('loading') 確實有執行

  2. 在加上 mui(btnElem).button('reset') 後,即便我在服務器端刻意等待五秒,一樣不會顯示loading

function save(skey, svalue, soption) {  
                userDate = document.getElementById('datetime').value;  
                session = localStorage.getItem('session');  
                btnElem = document.getElementById('savebooldbuton');  
                mui(btnElem).button('loading');  
                mui.ajax('http://keto.brain-c.com/app/rec/boold.php', {  
                    data: {  
                        session: session,  
                        skey: skey,  
                        svalue: svalue,  
                        soption: soption,  
                        date: userDate  
                    },   
                    dataType: 'json', //服务器返回json格式数据  
                    type: 'POST', //HTTP请求类型  
                    async: false,  
                    success: function(data) {  
                        if(data['type'] == 0) {  
                            result = data['info'];  
                        } else {  
                            result = null;  
                        }  
                        mui(btnElem).button('reset');  

                    },  
                    error: function(xhr, type, errorThrown) {  
                        //异常处理;  
                        console.log(type);  
                        result = null;  
                    }  
                });  
                return result;  

            }
追梦随想

追梦随想

像你说的,在请求成功后如果没有reset会出现loading,那说明是没问题的,应该是请求后端速度比较快,你把请求上面加一个延迟试试,比如延迟3秒开始请求。
另外,把你的请求地址删了吧,贴代码不需要把真实地址贴出来!

  • l***@brain-c.com (作者)

    我等過五到十秒

    除非async設為true,用false 是不行的

    2018-04-23 19:47

  • l***@brain-c.com (作者)

    發現居然不能修改...

    2018-04-23 19:49

该问题目前已经被锁定, 无法添加新回复