【问题标题】:Page load times using a Scanner (IE5)使用扫描仪 (IE5) 的页面加载时间
【发布时间】: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


【解决方案1】:

不支持 Internet Explorer 5,所以我不认为它可以很好地工作:

KnokcoutJS

支持所有主流浏览器,甚至是古老的IE 6+、Firefox 3.5+、Chrome、Opera、Safari(桌面/移动)

JQuery

jQuery 1.x Internet Explorer 6+

Sammy

总的来说,Sammy 旨在支持所有现代和当前的浏览器 跨越所有插件和核心。这包括: IE >= 8

【讨论】:

  • 我很清楚这一点,但正如我所说,我们已经有一个运行良好的网站。仅仅因为它不受支持,并不意味着它不起作用。
  • 你的其他网站显然在使用不同的库。为什么用户卡在 IE5 上?
猜你喜欢
  • 1970-01-01
  • 2013-06-05
  • 2011-01-15
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多