如何检查是否加载了局部视图,然后加载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);
        }
    });
}

如何检查是否加载了局部视图,然后加载javascript

如果我理解正确,js事件不会在你的部分视图(其中的ajax)内触发html

这是因为加载到页面上的html是在js(绑定你的事件)之后。

你需要用jquery的on方法来指定一个选择器,而把局部视图中dom上的任何事件放到document元素中。

$(document).on('click', '.some-class', function(){
  //do stuff
});

通过这种方式,您可以使用ajax向页面添加部分,部分中的dom仍然会触发事件。