mvc3 子页和母页的 js 执行顺序问题

lc402431247 2013-01-18 11:18:35
请教个问题,index 页面的母版页是_Layout
index里面有个性化的js,母版页里面有全局的js代码。

现在问题是:
总是先执行index页面的js,再执行 母版页的js .

?有没有什么方法可以先运行_Layout里面的全局js,再执行index里面的


我在母页_layout最下面这样的,
    ......
.....
@RenderSection("footerScript",false)
</body>
</html>


子页index是:
@section footerScript{
<script type="text/javascript">

</script>
}

...全文
345 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyena2009 2014-10-21
  • 打赏
  • 举报
回复
问题解决了吗?
claymore1114 2013-01-18
  • 打赏
  • 举报
回复
1. 子页和母版页 最终生成一个页面,再把 这个页面的html dom文档发给浏览器,浏览器再解析。 2. 执行js的顺序 就是浏览器解析的顺序,就是从上至下 来执行的。 看看 顺序,再 看看是不是代码控制了。
lc402431247 2013-01-18
  • 打赏
  • 举报
回复
引用 1 楼 Return_false 的回复:
试试 1.JS写在 $(function(){ //执行底部方法 }) 2.<script type="text/javascript" defer="defer">
不行哦
  • 打赏
  • 举报
回复
试试 1.JS写在 $(function(){ //执行底部方法 }) 2.<script type="text/javascript" defer="defer">
lc402431247 2013-01-18
  • 打赏
  • 举报
回复
引用 10 楼 claymore1114 的回复:
引用 7 楼 lc402431247 的回复:引用 3 楼 claymore1114 的回复:1. 子页和母版页 最终生成一个页面,再把 这个页面的html dom文档发给浏览器,浏览器再解析。 2. 执行js的顺序 就是浏览器解析的顺序,就是从上至下 来执行的。 看看 顺序,再 看看是不是代码控制了。 我也是这么想的。可事实不是这。 肯定是这样的, js代码……
呵呵,估计是我用了seajs的原因,正在学习这个。
lc402431247 2013-01-18
  • 打赏
  • 举报
回复
引用 9 楼 wknight_IT 的回复:
完整的DEMO代码,能上传一份, 让我测试下吗
有可能是我理解错了,主要是我用了seajs 时行模块化js _Layout
<!DOCTYPE html>
<html  lang="en">
<head>
    <meta charset="utf-8"/>
    <title>@ViewBag.title</title>
    <meta name="description" content=""/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <meta name="author" content="liangwind"/>

      <!-- Bootstrap -->
    <link href="~/Content/bootswatch/default/bootstrap.min.css" rel="stylesheet" id="main-theme-script">
    <link href="~/Content/bootswatch/default/default.css" rel="stylesheet" id="theme-specific-script">
    
    <!-- jQuery -->
    @*<script type="text/javascript" src="~/Scripts/jquery-1.7.1.js"></script>*@

    <script type="text/javascript" src="~/Scripts/sea.js" data-main='init'  id="seajsnode"></script>

</head>
<body>
.....
    @RenderSection("footerScript",false) 

</body>
</html>
   
index

@{
    ViewBag.Title = "主页";
    ViewBag.IsShowSideBarNav = false;
    ViewBag.TopMenu = "首页";
}
<div class="span12 well">
    <h2>@ViewBag.Message</h2>
    <p>
        若要了解有关 ASP.NET MVC 的更多信息,请访问 <a href="http://asp.net/mvc" title="ASP.NET MVC 网站">http://asp.net/mvc</a>。
    </p>
</div>

@section footerScript{
<script type="text/javascript">

    define('home', function (require) {
        //var $ = require('jquery.js');
        //        $(document).ready(function () {
        //            // $.jGrowl("Welcome to CarCrm. <a href=\"http://stanlemon.net/pages/jgrowl\"><i class=\"icon-book\"></i>  说明</a>", { life: 3000 });
        //        });

        console.log($);
    })

    seajs.use('home');
</script>
}
init.js
define(function (require) {
    console.log('init');
    console.log('-------');

    window.jQuery = window.$ = require("jquery.js");

    require("../Content/bootstrap/css/bootstrap-responsive.min.css");
    require("../Content/base.css");
    require('../Content/bootstrap/js/bootstrap')($);
    //    var bootbox = require('../Scripts/bootbox/bootbox.js')($);
   
});
想着在_Layout加载了jquery,bootstrap等全局化的东西,并把$,jQuery 放到全局里面了, 结果在index里面就是获取不到 $.
claymore1114 2013-01-18
  • 打赏
  • 举报
回复
引用 7 楼 lc402431247 的回复:
引用 3 楼 claymore1114 的回复:1. 子页和母版页 最终生成一个页面,再把 这个页面的html dom文档发给浏览器,浏览器再解析。 2. 执行js的顺序 就是浏览器解析的顺序,就是从上至下 来执行的。 看看 顺序,再 看看是不是代码控制了。 我也是这么想的。可事实不是这。
肯定是这样的, js代码 是在浏览器端执行的,不是后台 生成html页面时执行的,ok ?
风骑士之怒 2013-01-18
  • 打赏
  • 举报
回复
完整的DEMO代码,能上传一份, 让我测试下吗
手抓宝 2013-01-18
  • 打赏
  • 举报
回复
你把母板页的js写在header里边呢?
lc402431247 2013-01-18
  • 打赏
  • 举报
回复
引用 3 楼 claymore1114 的回复:
1. 子页和母版页 最终生成一个页面,再把 这个页面的html dom文档发给浏览器,浏览器再解析。 2. 执行js的顺序 就是浏览器解析的顺序,就是从上至下 来执行的。 看看 顺序,再 看看是不是代码控制了。
我也是这么想的。可事实不是这。
lc402431247 2013-01-18
  • 打赏
  • 举报
回复
引用 4 楼 hrabeyond 的回复:
模板页想先执行的js写在@RenderBody()的前边
现在问题是模板页js,不管写到@RenderBody()前后,都是先执行完了子页的js,才执行模板页的。
手抓宝 2013-01-18
  • 打赏
  • 举报
回复
子页面都是在@RenderBody()这个位置生成的,你写在末尾,肯定是在@RenderBody()之后的啊,生成的页面中,js也是在后边的。
手抓宝 2013-01-18
  • 打赏
  • 举报
回复
模板页想先执行的js写在@RenderBody()的前边

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧