当前位置:编程学习 > C#/ASP.NET >>

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

请教个问题,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>
}

mvc --------------------编程问答-------------------- 试试
1.JS写在  $(function(){
     //执行底部方法
})
2.<script type="text/javascript" defer="defer"> --------------------编程问答--------------------
引用 1 楼 Return_false 的回复:
试试
1.JS写在  $(function(){
     //执行底部方法
})
2.<script type="text/javascript" defer="defer">

不行哦 --------------------编程问答--------------------
1. 子页和母版页 最终生成一个页面,再把 这个页面的html dom文档发给浏览器,浏览器再解析。
2. 执行js的顺序 就是浏览器解析的顺序,就是从上至下 来执行的。

看看 顺序,再 看看是不是代码控制了。 --------------------编程问答-------------------- 模板页想先执行的js写在@RenderBody()的前边 --------------------编程问答-------------------- 子页面都是在@RenderBody()这个位置生成的,你写在末尾,肯定是在@RenderBody()之后的啊,生成的页面中,js也是在后边的。 --------------------编程问答--------------------
引用 4 楼 hrabeyond 的回复:
模板页想先执行的js写在@RenderBody()的前边

现在问题是模板页js,不管写到@RenderBody()前后,都是先执行完了子页的js,才执行模板页的。 --------------------编程问答--------------------
引用 3 楼 claymore1114 的回复:
1. 子页和母版页 最终生成一个页面,再把 这个页面的html dom文档发给浏览器,浏览器再解析。
2. 执行js的顺序 就是浏览器解析的顺序,就是从上至下 来执行的。

看看 顺序,再 看看是不是代码控制了。

我也是这么想的。可事实不是这。 --------------------编程问答-------------------- 你把母板页的js写在header里边呢? --------------------编程问答-------------------- 完整的DEMO代码,能上传一份, 让我测试下吗 --------------------编程问答--------------------
引用 7 楼 lc402431247 的回复:
引用 3 楼 claymore1114 的回复:1. 子页和母版页 最终生成一个页面,再把 这个页面的html dom文档发给浏览器,浏览器再解析。
2. 执行js的顺序 就是浏览器解析的顺序,就是从上至下 来执行的。

看看 顺序,再 看看是不是代码控制了。
我也是这么想的。可事实不是这。

肯定是这样的, js代码 是在浏览器端执行的,不是后台 生成html页面时执行的,ok ? --------------------编程问答--------------------
引用 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里面就是获取不到 $.

--------------------编程问答--------------------
引用 10 楼 claymore1114 的回复:
引用 7 楼 lc402431247 的回复:引用 3 楼 claymore1114 的回复:1. 子页和母版页 最终生成一个页面,再把 这个页面的html dom文档发给浏览器,浏览器再解析。
2. 执行js的顺序 就是浏览器解析的顺序,就是从上至下 来执行的。

看看 顺序,再 看看是不是代码控制了。
我也是这么想的。可事实不是这。
肯定是这样的, js代码……

呵呵,估计是我用了seajs的原因,正在学习这个。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,