如何检查是否加载了局部视图,然后加载javascript
本文关键字:加载 局部 视图 javascript 然后 是否 何检查 检查 | 更新日期: 2023-09-27 17:50:35
我有一个关于问题的查询。由于我的应用程序使用部分视图和这些部分视图是通过ajax调用加载的,每个部分视图使用javascript并包含js文件,最终调用数据库来绑定特定视图的数据。现在,加载视图花费的时间比预期的要多,因为它加载了js文件,并且js文件再次调用服务器来提取记录。我希望我的视图被加载,然后js文件,使db调用绑定数据。像下面这样-
If(partialview是加载的)加载js文件,这将使ajax调用和db最终绑定数据。
这将至少加载视图和用户将有东西看到,而不是等待空白背景与加载器。下面是我加载PartialView的脚本。
function loadview(action, hassubmenu, _fromtab) {
if (hassubmenu == 'true') {
return false;
}
if (!_fromtab) {
$('.process').show();
$('.mainbody').html('');
}
// call ajax to load view
$.ajax({
url: urlheader + "Home/LoadView/",
type: 'POST',
data: {
'view': action
},
success: function (data) {
// This outputs the result of the ajax request
$('.process').hide();
if (!_fromtab) {
$('.mainbody').html('').html(data);
// disable appfilter from start screen
var ostype = $('select#selection').find('option:selected').data('ostype');
var did = $('select#selection').find('option:selected').val();
if (ostype.toLowerCase() == 'ios' && action == 'Start') {
$('div.appfilter').hide();
$('#liAppFilter').hide();
}
getsyncinfo(did, false);
if (_currenttab != undefined) {
reloadCurrentFilterTab(_currenttab);
}
}
else
$('.chicoAppsUrlsDetails').html('').html(data);
},
error: function (errorThrown) {
console.log(errorThrown);
}
});
}
如果我理解正确,js事件不会在你的部分视图(其中的ajax)内触发html
这是因为加载到页面上的html是在js(绑定你的事件)之后。
你需要用jquery的on方法来指定一个选择器,而把局部视图中dom上的任何事件放到document元素中。
。
$(document).on('click', '.some-class', function(){
//do stuff
});
通过这种方式,您可以使用ajax向页面添加部分,部分中的dom仍然会触发事件。