本文將告訴您的最佳化程序,為 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 檔案。
重要不支援最佳化程序,本文中討論。
執行此程序之前,請確定符合下列準則:
若要建立新頁,下載 Core.js 檔案,但是不會參考 Core.js 檔案,請依照下列步驟執行:
- 在 SharePoint 設計工具 2007年中建立新的頁面版面配置。 執行這項操作、 複製現有的網頁版面配置和再將它貼到相同的資料夾。
比方說複製 ArticleLeft.aspx,並命名新的頁面配置"ArticleLeftNoCore.aspx]。
附註若要區別兩個頁面版面配置,就要指定新的說明,您建立新的頁面版面配置。
建立新的頁面版面配置後,請依照下列步驟執行:- 按兩下新網頁的配置。比方說按兩下 ArticleLeftNoCore.aspx。然後,在頁面底部,按一下 [程式碼]。
- 找出 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" %>
- 建立新的二進位檔是根據下列程式碼。例如建立新的二進位檔,名為"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.0.0.0。
- 將二進位檔加入至全域組件快取在伺服器上。
- 開啟 Web.config 檔案在伺服器上的,然後將下列程式碼加入至 SafeControls 控制項集合。
<SafeControl Assembly="PerfTools, Version=1.0.0.0, Culture=neutral, PublicKeyToken=PublicKeyToken" Namespace="WebControls" TypeName="*" Safe="True" />
- 在新的頁面配置您在步驟 1 中建立,請依照下列步驟執行:
- 加入標記,來註冊二進位檔。以下的標籤是這類一個 tag.
<%@ Register TagPrefix="PerfTools" Namespace="WebControls"
Assembly="PerfTools, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=PublicKeyToken" %>
- 之後您在步驟 1b 中加入程式碼行上, 加入下列程式碼
<PerfTools:RegisterCoreWhenAuthenticatedControl runat="server"/>
- 建立名為"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 檔案之前執行檔。 - 開啟主版頁面,然後加入下列程式碼之後</form> 標記以及之前</body> 標記。
<asp:ContentPlaceHolder id="PlaceHolderBottomIFrame"
runat="server" />
- 在您在步驟 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 檔案載入執行其函式之前,會顯示在頁面上的所有項目。 - 簽入新的頁面配置,然後再將其發佈。
- 使用新的頁面配置來建立新的頁面。
當匿名使用者瀏覽新的頁面時,Core.js 檔案並沒有使用者可以檢視網頁之前,或使用者可以與網頁互動之前進行下載。
比方說您使用 ArticleLeft.aspx 來建立新頁面,然後再建立另一個新的頁面使用 ArticleLeftNoCore.aspx。雖然這兩個新的頁面是相同的一個新頁面參考 Core.js 檔案,而且其他新的頁面並不會。 - 測試新建立要確保所有控制項都正常運作的頁面。
如果控制項沒有作用,當匿名使用者瀏覽網頁時,請從新的頁面移除控制項。從新網頁的配置,或者,移除控制項。 在此程序中最佳化假設頁面上的項目需要 Core.js 檔案因為新的頁面不需要 Core.js 檔案。 - 請確定 Core.js 檔案仍然出現在網站上的其他頁面上。瀏覽以確認 Core.js 檔案會出現在那些網頁上網站上的其他網頁。
若要驗證此程序中的最佳化正常運作,瀏覽新的頁面以匿名使用者,並再檢視頁面上的 [原始碼]。請確認 Core.js 檔案的參考不存在。然後,檢視快取。請確認 Core.js 檔案會下載至伺服器。只從新網頁的配置建立頁未參考 Core.js 檔案。在網站上的其他網頁將會繼續參考 Core.js 檔案。
如需有關此程序的詳細資訊,請造訪下列 Microsoft 網站]:
Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能。不過,不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。