mvc3 子页和母页的 js 执行顺序问题
请教个问题,index 页面的母版页是_Layoutindex里面有个性化的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. 子页和母版页 最终生成一个页面,再把 这个页面的html dom文档发给浏览器,浏览器再解析。
2. 执行js的顺序 就是浏览器解析的顺序,就是从上至下 来执行的。
看看 顺序,再 看看是不是代码控制了。 --------------------编程问答-------------------- 模板页想先执行的js写在@RenderBody()的前边 --------------------编程问答-------------------- 子页面都是在@RenderBody()这个位置生成的,你写在末尾,肯定是在@RenderBody()之后的啊,生成的页面中,js也是在后边的。 --------------------编程问答--------------------
现在问题是模板页js,不管写到@RenderBody()前后,都是先执行完了子页的js,才执行模板页的。 --------------------编程问答--------------------
我也是这么想的。可事实不是这。 --------------------编程问答-------------------- 你把母板页的js写在header里边呢? --------------------编程问答-------------------- 完整的DEMO代码,能上传一份, 让我测试下吗 --------------------编程问答--------------------
肯定是这样的, js代码 是在浏览器端执行的,不是后台 生成html页面时执行的,ok ? --------------------编程问答--------------------
有可能是我理解错了,主要是我用了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里面就是获取不到 $.
--------------------编程问答--------------------
呵呵,估计是我用了seajs的原因,正在学习这个。
补充:.NET技术 , ASP.NET