[英]How to load Blazor component in MVC partial view from javascript
[英]how to check if partial view is loaded and then load javascript
我有關於一個問題的查詢。 當我的應用程序使用部分視圖時,這些部分視圖通過ajax調用以及每個部分視圖的用法javascript和include js文件加載,該文件最終會調用數據庫為該特定視圖綁定數據。 現在,加載視圖所花費的時間比預期要多,因為它加載了js文件,並且該js文件再次調用服務器以提取記錄。 我希望先加載我的視圖,然后再加載js文件,該文件使數據庫調用綁定數據。 如下所示-
如果(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);
}
});
}
如果我理解正確,部分事件中的html不會觸發js事件(這些事件會被取消)
這是因為正在加載到頁面上的html在js之后(綁定了您的事件)。
您需要將部分視圖中dom上的所有事件放置在document元素上,而不是使用jquery on方法來指定選擇器。
例如。
$(document).on('click', '.some-class', function(){
//do stuff
});
這樣,您可以使用ajax向頁面中添加局部對象,並且局部對象中的dom仍然會觸發事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.