SORU
26 Mayıs 2009, Salı


Kısmi manzaralı JavaScript dosyası vardır

En iyi uygulama kısmi manzaralı içinde javascript dosyaları dahil etmek için ne olduğunu merak ediyorum. Bir kere bu benim sayfanın html ortasında etiketini içeren bir js olarak sona erecek işlenmiş. Benim açımdan bu, bunu yapmanın iyi bir yolu değil. Head etiketi içinde oldukları ve bu şekilde bir html işleme tarayıcı engel olmamalıdır.

Bir örnek: Bir içeri bir WordPress kullanmak picturegallery bir eklenti 'PictureGallery' bu kısmi görünüm olarak kısmi görünümü birkaç sayfada kullanılacak. kullanıyorum Bu eklenti sadece bu görünümü kullanıldığında yüklü olması gerekirHer bir kısmi görünümü kullanarak bir şey yapmaya niyetim yok...

Cevaplarınız için teşekkürler.

CEVAP
26 Mayıs 2009, Salı


Bu soruya çok benzer görünüyor: Linking JavaScript Libraries in User Controls

Burada soru cevabım test edeceğim.

Kesinlikle söz tam olarak bu nedenle numune içine koyarak tavsiye etmem. Bir görünüm, aynı js dosyasına başvurular iki elimizde bir çek olabilir yüksek bir şans var. Ayrıca html geri kalanı yüklemeden önce js yükleme performans isabet var.

Bilemiyorum en iyi yöntem ama ben seçim yapmak dahil herhangi bir ortak js dosyalarının içindeki Anasayfa ve sonra tanımlamak ayrı bir Sayfası için bazı ek js dosyaları özgü belirli bir veya az sayıda bulunur.

İşte size bir örnek Ana Sayfa - oldukça kendi kendini açıklayıcı.

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<head runat="server">
    ... BLAH ...
    <asp:ContentPlaceHolder ID="AdditionalHead" runat="server" />
    ... BLAH ...
    <%= Html.CSSBlock("/styles/site.css") %>
    <%= Html.CSSBlock("/styles/ie6.css", 6) %>
    <%= Html.CSSBlock("/styles/ie7.css", 7) %>
    <asp:ContentPlaceHolder ID="AdditionalCSS" runat="server" />
</head>
<body>
    ... BLAH ...
    <%= Html.JSBlock("/scripts/jquery-1.3.2.js", "/scripts/jquery-1.3.2.min.js") %>
    <%= Html.JSBlock("/scripts/global.js", "/scripts/global.min.js") %>
    <asp:ContentPlaceHolder ID="AdditionalJS" runat="server" />
</body>

Html.CSSBlock & Html.JSBlock açıkçası benim kendi uzantıları olan fakat yine de, ne yaptıklarını, kendi kendini açıklayıcı.

O zaman söyle bir Kayıt.SEO ederdim görüntüleyin

<asp:Content ID="signUpContent" ContentPlaceHolderID="AdditionalJS" runat="server">
    <%= Html.JSBlock("/scripts/pages/account.signup.js", "/scripts/pages/account.signup.min.js") %>
</asp:Content>

HTHs, Charles

Ps. Burada bir ve js dosyalarını küçültmeye bitiştirmek sorduğum soru: Concatenate & Minify JS on the fly OR at build time - ASP.NET MVC

DÜZENLEME:Benim diğer cevap istenen, benim uygulama .İstediğin gibi JSBlock(a, b)

public static MvcHtmlString JSBlock(this HtmlHelper html, string fileName)
{
    return html.JSBlock(fileName, string.Empty);
}

public static MvcHtmlString JSBlock(this HtmlHelper html, string fileName, string releaseFileName)
{
    if (string.IsNullOrEmpty(fileName))
        throw new ArgumentNullException("fileName");

    string jsTag = string.Format("<script type=\"text/javascript\" src=\"{0}\"></script>",
                                 html.MEDebugReleaseString(fileName, releaseFileName));

    return MvcHtmlString.Create(jsTag);
}

Sonra büyülü bir şey oluyor...

    public static MvcHtmlString MEDebugReleaseString(this HtmlHelper html, string debugString, string releaseString)
    {
        string toReturn = debugString;
#if DEBUG
#else
        if (!string.IsNullOrEmpty(releaseString))
            toReturn = releaseString;
#endif
        return MvcHtmlString.Create(toReturn);
    }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • itfigueres

    itfigueres

    12 EKİM 2013
  • Jeremy Stark

    Jeremy Stark

    23 Mayıs 2010
  • Matt Harding

    Matt Harding

    23 Mayıs 2006