文章編號: 933823 - 上次校閱: 2007年5月15日 - 版次: 1.2

如何建立卸離的網頁的下載 Core.js 檔案,但是不會參考 Core.js 檔案在 SharePoint Server 2007 站台上

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

結論

本文將告訴您的最佳化程序,為 Microsoft Office SharePoint Server 2007。 本文將告訴您如何建立分離的網頁的下載 Core.js 檔案,但是不會參考站台上的 Core.js 檔案。當您使用這個方法時,您可以延遲 Core.js 檔之匿名使用者的下載,直到使用者可以檢視網頁。以這種方式在頁面呈現速度更快。

簡介

本文將告訴您,如何使用 Microsoft Office SharePoint 設計工具 2007年建立分離的頁面,下載 Core.js 檔案,但是不會參考 Core.js 檔案在 SharePoint Server 2007 站台上。

在面對網際網路的網站在低頻寬連線或高延遲連線的使用者可能會遇到效能變慢,先瀏覽網站時。比方說花費很長的時間,第一頁的網站來載入,因為有時候必須下載額外的資源。雖然資源經常會在一個網站上網頁之間共用和雖然這些資源會在用戶端上快取可能載入速度緩慢,站台第一頁。

本文將告訴您,SharePoint Server 2007 之最佳化程序。預設情況下,SharePoint Server 2007 網站上的所有網頁會都包含 Core.js 檔案的參考。它壓縮的表單中的 [Core.js 檔案為 54 KB。 在許多方面這個檔案是站台的作業非常重要的。 但是,有某些部分不需要這個檔案。

此最佳化程序在您要建立新的頁面配置。然後,您會使用該頁面版面配置來建立新頁面。在新頁面 Core.js 檔案會從頁面呈現為匿名使用者之前必須下載資源清單中移除。當在頁面上的內容可讀取時在背景中下載 Core.js 檔案。

重要不支援最佳化程序,本文中討論。

其他相關資訊

執行此程序之前,請確定符合下列準則:
  • 網站主版頁面與不同系統主版頁面。

    若要驗證此,找出下列頁面:
    http:// ServerName /_layouts/ChangeSiteMasterPage.aspx
    然後,判定網站主版頁面和 「 系統母片 」 頁面是否參考相同的檔案。 如果他們參考相同的檔案,最佳化在此程序將無法運作。 處理最佳化,網站主版頁面和 「 系統母片 」 頁面必須使用不同的檔案。

    系統主版頁面使用的網頁通常位於 _layouts 」 資料夾。系統主版頁面使用的網頁可能呼叫,例如"/ _layouts/Settings.aspx 」 頁面。
  • 網站主版頁面不包含下列控制項:
    • 匿名使用者都能看見的控制項
    • 控制項需要 Core.js 檔案,但不註冊 Core.js 檔案
    在此程序中最佳化會抑制 Core.js 檔案在同一頁上的,並抑制僅供匿名使用者檔案。 匿名使用者的 Core.js 檔案不是下載到直到頁面後資料頁就是可讀取。 為已驗證使用者 Core.js 檔案會下載至頁面之前資料頁就是可讀取。

    您可以修改程式碼最佳化程序,以抑制 Core.js 檔案的匿名使用者以外使用者的步驟 2 中所述。如果您執行這項操作,您也必須考慮網站主版頁面。
  • 請確定網站主版頁面不包含登錄 Core.js 檔的 ScriptLink 控制項。此程序的目標是要建立會抑制 Core.js 檔案的網頁。

    附註在一般情況下 Core.js 檔案是由 SPWebPartManager 控制項註冊。
若要建立新頁,下載 Core.js 檔案,但是不會參考 Core.js 檔案,請依照下列步驟執行:
  1. 在 SharePoint 設計工具 2007年中建立新的頁面版面配置。 執行這項操作、 複製現有的網頁版面配置和再將它貼到相同的資料夾。

    比方說複製 ArticleLeft.aspx,並命名新的頁面配置"ArticleLeftNoCore.aspx]。

    附註若要區別兩個頁面版面配置,就要指定新的說明,您建立新的頁面版面配置。

    建立新的頁面版面配置後,請依照下列步驟執行:
    1. 按兩下新網頁的配置。比方說按兩下 ArticleLeftNoCore.aspx。然後,在頁面底部,按一下 [程式碼]。
    2. 找出 PlaceHolderAdditionalPageHead] 標籤,然後將下列程式碼加入至標記
      <SharePointWebControls:ScriptLink runat="server"/>  
      
      當您執行這項操作伺服器不會參考 Core.js 檔案除非 Core.js 檔案登錄的控制項。

      其他主版頁面可能使用不同的標籤來參考 ScriptLink 控制項。比方說 Default.master 頁面使用 SharePoint:ScriptLink 」 標記,而不是 SharePointWebControls:ScriptLink"標記。

      參考 ScriptLink 控制項的標記會參考 Microsoft.SharePoint.WebControls 命名空間。以下的標籤是這種標記的範例。
      <%@ Register Tagprefix="SharePointWebControls" 
      Namespace="Microsoft.SharePoint.WebControls" 
      Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, 
      PublicKeyToken=PublicKeyToken" %> 
  2. 建立新的二進位檔是根據下列程式碼。例如建立新的二進位檔,名為"PerfTools.dll]。
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Microsoft.SharePoint;
     
    namespace WebControls
    
    {
        [DefaultProperty("Text")]
        [ToolboxData("<{0}:RegisterCoreWhenAuthenticatedControl runat=server></
    {0}:RegisterCoreWhenAuthenticatedControl>")]
        public class RegisterCoreWhenAuthenticatedControl : WebControl
        {
            protected override void OnInit(EventArgs e)
            {
                if (HttpContext.Current.Request.IsAuthenticated)
                {
                    Microsoft.SharePoint.WebControls.ScriptLink.RegisterCore(this.Page, true);
                }
                base.OnInit(e);
            }
        }
    }
    這段程式碼會告知伺服器來參照 Core.js 檔案,如果使用者不是匿名。因為 [網站動作] 功能表需要 Core.js 檔案執行此作業。 預設值,許多已驗證的使用者擁有在網站上至 [網站動作] 功能表的存取權。

    您的環境可能需要隱藏 Core.js 檔案在不同的情況下。在此環境中使用適合您需求的程式碼。

    要注意 OnInit 方法執行載入頁面的任何時間。 因此,請確定您未新增對於在伺服器上的處理量有不利的影響的程式碼。比方說如果您新增存取目前 SpListItem 元件的程式碼,Microsoft SQL Server 資料庫的往返就可能發生。

    建立新的二進位檔後,請依照下列步驟執行:
    1. 將二進位碼檔案的版本設定為 1.0.0.0。
    2. 將二進位檔加入至全域組件快取在伺服器上。
  3. 開啟 Web.config 檔案在伺服器上的,然後將下列程式碼加入至 SafeControls 控制項集合。
    <SafeControl Assembly="PerfTools, Version=1.0.0.0, Culture=neutral, PublicKeyToken=PublicKeyToken" Namespace="WebControls" TypeName="*" Safe="True" />
  4. 在新的頁面配置您在步驟 1 中建立,請依照下列步驟執行:
    1. 加入標記,來註冊二進位檔。以下的標籤是這類一個 tag.
      <%@ Register TagPrefix="PerfTools" Namespace="WebControls" 
      Assembly="PerfTools, Version=1.0.0.0, Culture=neutral,
      PublicKeyToken=PublicKeyToken" %>
    2. 之後您在步驟 1b 中加入程式碼行上, 加入下列程式碼
      <PerfTools:RegisterCoreWhenAuthenticatedControl runat="server"/>
  5. 建立名為"CorePreLoad.aspx"的新頁面,然後再將它複製到伺服器上 _layouts 」 資料夾。

    使用下列程式碼來建立資料頁。
    <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" 
    Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, 
    PublicKeyToken=71e9bce111e9429c" %>
    <html>
    <head>
    <title>Pre-Load Core.js</title>
    </head>
    <body>
    <SharePoint:ScriptLink name="core.js" runat="server" />
    
    <script language="javascript">
     DisableRefreshOnFocus();
    </script>
    
    </body>
    </html>
    
    本頁參考 Core.js 檔中的函式。此外,頁面下載 Core.js 檔案之前執行檔。
  6. 開啟主版頁面,然後加入下列程式碼之後</form> 標記以及之前</body> 標記。
    <asp:ContentPlaceHolder id="PlaceHolderBottomIFrame" 
    runat="server" />
  7. 在您在步驟 1 中建立新版面,將下列程式碼加入至頁面結尾
    <asp:Content ContentPlaceholderID="PlaceHolderBottomIFrame" 
    runat="server">
                    <iframe 
    src="http://blogs.msdn.com/_layouts/CorePreLoad.aspx" 
    style="display:none"/>
    </asp:Content>
    
    這段程式碼可讓新的頁面配置參考 CorePreLoad.aspx 頁面。CorePreLoad.aspx 檔案載入執行其函式之前,會顯示在頁面上的所有項目。
  8. 簽入新的頁面配置,然後再將其發佈。
  9. 使用新的頁面配置來建立新的頁面。

    當匿名使用者瀏覽新的頁面時,Core.js 檔案並沒有使用者可以檢視網頁之前,或使用者可以與網頁互動之前進行下載。

    比方說您使用 ArticleLeft.aspx 來建立新頁面,然後再建立另一個新的頁面使用 ArticleLeftNoCore.aspx。雖然這兩個新的頁面是相同的一個新頁面參考 Core.js 檔案,而且其他新的頁面並不會。
  10. 測試新建立要確保所有控制項都正常運作的頁面。

    如果控制項沒有作用,當匿名使用者瀏覽網頁時,請從新的頁面移除控制項。從新網頁的配置,或者,移除控制項。 在此程序中最佳化假設頁面上的項目需要 Core.js 檔案因為新的頁面不需要 Core.js 檔案。
  11. 請確定 Core.js 檔案仍然出現在網站上的其他頁面上。瀏覽以確認 Core.js 檔案會出現在那些網頁上網站上的其他網頁。
若要驗證此程序中的最佳化正常運作,瀏覽新的頁面以匿名使用者,並再檢視頁面上的 [原始碼]。請確認 Core.js 檔案的參考不存在。然後,檢視快取。請確認 Core.js 檔案會下載至伺服器。只從新網頁的配置建立頁未參考 Core.js 檔案。在網站上的其他網頁將會繼續參考 Core.js 檔案。

?考

如需有關此程序的詳細資訊,請造訪下列 Microsoft 網站]:
http://blogs.msdn.com/ecm/archive/2007/02/21/building-a-new-page-layout-which-does-not-reference-core-js-but-downloads-it-while-the-page-is-being-viewed-thereby-optimizing-response-time.aspx (http://blogs.msdn.com/ecm/archive/2007/02/21/building-a-new-page-layout-which-does-not-reference-core-js-but-downloads-it-while-the-page-is-being-viewed-thereby-optimizing-response-time.aspx)
Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能。不過,不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。

這篇文章中的資訊適用於:
  • Microsoft Office SharePoint Server 2007
  • Microsoft Office SharePoint Designer 2007
關鍵字:?
kbmt kbhowto kbexpertiseinter kbinfo KB933823 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:933823? (http://support.microsoft.com/kb/933823/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。