剛開始寫了同步獲取數據的方式,後來發現若是數據量大,前端界面會卡住,直到返回數據纔會作下一步操做。javascript
function getcode(code) { var url = "http://......"; $.ajaxSettings.async = false;//設置爲同步 $.get(url + code, function(data, status) { dd = data; }); return dd; }
因而將請求改成異步前端
function getCode() { var defer = $.Deferred();//jquery的一個方法 $.ajax({ // url: 'http://.....', success: function(data) { defer.resolve(data) } }); return defer.promise();//返回的是promise對象 } getCode().then(//經過promise對象的.then回調函數拿到數據 function(code) { console.log(code); //此處能夠直接輸出數據,或者將須要使用該數據的方法寫在函數內,但不能將此數據返回給調用者!!!! });
這樣就不會致使頁面在加載數據的時候堵塞了。java