【发布时间】:2014-10-06 13:47:34
【问题描述】:
我有一个 MVC 项目,我使用 knockoutjs 和 sammy 将其构建为 SPA。 我把这个脚本放在页眉中。
<script>
var startTime = (new Date()).getTime();
</script>
在正文的最后,我放了这个:
@Scripts.Render("~/Scripts/required")
@Scripts.Render("~/Scripts/app/views")
<script>
$(function () {
$(window).load(function () {
var endTime = (new Date()).getTime();
var millisecondsLoading = endTime - startTime;
// Put millisecondsLoading in a hidden form field
// or Ajax it back to the server or whatever.
alert(millisecondsLoading);
});
});
</script>
正在加载的脚本如下:
' For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
Public Sub RegisterBundles(ByVal bundles As BundleCollection)
bundles.Add(New StyleBundle("~/Content/css").Include(
"~/Content/core.css"))
bundles.Add(New ScriptBundle("~/Scripts/required").Include(
"~/Scripts/jquery-1.9.0.min.js",
"~/Scripts/json2.js",
"~/Scripts/jquery.cookie.js",
"~/Scripts/knockout-3.2.0.js",
"~/Scripts/knockout.validation.js",
"~/Scripts/sammy-0.7.5.js"))
bundles.Add(New ScriptBundle("~/Scripts/app/views").Include(
"~/Scripts/app/_common.js",
"~/Scripts/app/_app.datamodel.js",
"~/Scripts/app/_app.viewmodel.js",
"~/Scripts/app/common.viewmodels.js",
"~/Scripts/app/error.viewmodel.js",
"~/Scripts/app/login.viewmodel.js",
"~/Scripts/app/home.viewmodel.js",
"~/Scripts/app/cut-lengths.viewmodel.js",
"~/Scripts/app/move-stock.viewmodel.js",
"~/Scripts/app/transfers.viewmodel.js",
"~/Scripts/app/allocations.viewmodel.js",
"~/Scripts/app/lot-enquiry.viewmodel.js",
"~/Scripts/app/_run.js"))
' Set EnableOptimizations to false for debugging. For more information,
' visit http://go.microsoft.com/fwlink/?LinkId=301862
BundleTable.EnableOptimizations = True
End Sub
现在,如果我在我的开发机器上使用 IE5 运行它,我会收到一个介于 200 到 300 毫秒之间的警报。这很好。 但是,当我在扫描仪上运行它时,加载需要超过 20000 毫秒(20 秒)。
这是我添加它们时每个脚本的时间,按顺序(从 jQuery 开始)
- 5 秒(jQuery 自带)
- 6 秒(jQuery、json2)
- 6 秒(jQuery、json2、jQuery-cookie)
- 8 秒(jQuery、json2、jQuery-cookie、knockoutjs)
- 9 秒(jQuery、json2、jQuery-cookie、knockoutjs、sammy)
现在,我开始添加我的视图模型,看看它们有什么影响:
- 9 秒(应用数据模型)
- 10 秒(应用程序数据模型、视图模型)
- 11 秒(app dataModel、viewModel 和 common)
加载每个其他视图模型大约需要一秒钟。
以前有没有人经历过这种情况?如果是这样,你是如何解决的? 我很茫然,因为我们有另一个应用程序可以加载大约相同数量的脚本,而且它几乎是即时的。
请帮忙!
【问题讨论】:
-
古代(IE5 接近 15 年)浏览器中的 JavaScript 速度很慢。这只是生活中的事实。
-
就像我说的,我们的网站运行良好。
标签: javascript jquery asp.net-mvc knockout.js