加载外部javascript文件时,Colorbox延迟打开并“锁定”

时间:2013-12-12 03:14:36

标签: c# javascript asp.net asp.net-mvc-3 colorbox

我正在使用colorbox在我的项目中加载模态页面。 当我单击打开一个模态时,页面需要一段时间才能加载,并且窗口在一段时间内“锁定”。 我做了一个简单的页面来代表我的问题。 访问权限:http://testes.tiagocrizanto.com/ 单击Index2时,页面正常加载,但是,当您单击Modal链接时,模态会花费一些时间来加载(请注意加载图像锁定一段时间)。 如果您打开Chrome DevTools并选择网络选项卡,您将看到加载到模态窗口中的外部js文件需要一些时间来加载。 在我的示例中,窗口需要一段时间才能加载,但是,如果我尝试加载3个或更多js文件,则模态窗口可能需要10秒或更长时间来加载。

Index2页面的代码和加载模式的脚本:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Index2
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript">
    $(document).ready(function () {
        $('.cbox').colorbox({
            innerWidth: 833,
            innerHeight: 500,
            scrolling: true
        });
    });
    </script>
    <a href="/Home/Modal" class="cbox">Modal</a>
</asp:Content>

模态代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Modal.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/ScriptFile.js") %>"></script>


    <h2>Modal</h2>

</asp:Content>

<asp:Content ID="Content3" ContentPlaceHolderID="HeaderContent" runat="server">
</asp:Content>

为什么会发生这种想法?

1 个答案:

答案 0 :(得分:0)

在loooonnngggg搜索后,我找到了解决方案: optimizing colorbox and adding extra jquery

ColorBox使用jQuery的load()方法进行ajax处理,所以你只需要将所需的选择器添加到链接的href中。

$(document).ready(function () {
     $('.cbox').colorbox({
         href: function () {
             return $(this).attr('href');
         },
         innerWidth: 833,
         innerHeight: 500,
         scrolling: true
     });
 });

链接按钮:

<%: Html.ActionLink("Add", "Create", "Agenda", new { @class = "btn btn-mini pull-left margin-10 no-margin-left border-radius-3 cbox" })%>