我在页面上有很多mysql查询。在他们完成之前,我想在我的页面上显示()一个模态。莫代尔准备就绪。
我的算法:
page.onload -> show loading modal
/*wait until all the queries end*/
hide loading modal.
我怎么能等待所有查询结束?
提前致谢。
--- ---编辑
我正在使用laravel debugbar。 Debugbar向我显示如下:
--- Update--
Javascript文件:
$(document).ready(function(){
$('#myTab a').on('load', function (e) {
e.preventDefault();
$(this).tab('show');
},onLoadMyTab());
}
function onLoadMyTab(){
//postRoute is on my routes.php and data is including the values
$.post("postRoute", function(data)){
//some javascript code, just for UI
}
}
routes.php文件
Route::post('postRoute', array(
'uses' => 'myController@myPostFunction'
'as' => 'postRoute'
));
myController.php
public function myPostFunction(){
//some database queries here, returning JSON to my onLoadMyTab js function
//which returns as data to onLoadMyTab js function.
}
希望我能理解。
答案 0 :(得分:1)
这里有几个问题:
$(...).on()
内,第三个参数是每当发出事件时调用的回调。 http://api.jquery.com/on/ 您实际上是将undefined
传入回调,因为您调用了onLoadMyTab
隐式返回未定义的内容。
您可能只想在DOM准备就绪时立即调用onLoadMyTab
。
$(document).ready(onLoadMyTab);
$ .post将发出ajax请求,并在请求完成时调用第二个参数。
function onLoadMyTab() {
$.post("postRoute", function(data)){
// show modal with data here
});
}