当前位置:  开发笔记 > 编程语言 > 正文

Mvc完成异步脚本加载

如何解决《Mvc完成异步脚本加载》经验,为你挑选了0个好方法。

我的网页上有异步加载脚本的小问题.我需要异步加载页面的所有脚本.我尝试了很多程序,我在谷歌上发现,但它仍然不完美.

现在我有这样的:

    将所有脚本从布局拆分为一个包,包括jquery.

    在页面底部调用带有异步标记的RenderFormat.

    现在这就是我遇到问题的地方:我需要解决由@RenderFormat呈现脚本的情况.问题是这些脚本的渲染时间比我需要的要早.

例如,我在Home/Index文件中有这个:

@Scripts.RenderFormat("", "~/bundles/raphael")

或者干脆

...
$(".datapicker").datapicker();
...

这里我们得到错误," $未定义 ",因为尚未加载jquery.

在内容之后,在布局文件中我有:

...
@Scripts.RenderFormat("", "~/bundles/frontall")
...
@RenderSection("scripts", required: false)

如果我将所有脚本放在页面上并将它们放到一个包中,一切都很好,但我不希望脚本被渲染,我只需要在特定的部分中执行此操作.

接下来的想法是创建一个自定义的RenderSection方法,它会像这样做:

    function async(u, c) {
    var d = document, t = 'script',
        o = d.createElement(t),
        s = d.getElementsByTagName(t)[0];
    o.src = u;
    if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
    s.parentNode.appendChild(o, s);
}

async("/bundles/jquery", function() {
    //here, load scripts from inner pages. Index, Detail...
});

有办法,怎么解决?非常感谢您的宝贵时间.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有