[英]Managing/removing unnecessary scripts in live Kentico site
我們正在使用ASPX + portal模型構建一個Kentico 8.2網站。 在實時站點上查看呈現的HTML,我可以看到Kentico轉儲到我的頁面中的許多不必要的Javascript。 更重要的是,這發生在表單元素頂部的頁面頂部。
例如,即使我沒有使用任何需要它的控件,它也會呈現ASP.NET __doPostBack
JS函數。 其他腳本將作為WebResource.axd和ScriptResource.axd包括在內添加。
乍一看,這些腳本構成了與UpdatePanel
等一起使用的Microsoft AJAX框架。我的假設是,在Kentico UI中使用頁面時,它們可以添加門戶網站管理器功能。 大概它們也與某些內置Web部件一起使用。
但是,我僅在活動站點上使用自定義Web部件,因此所有這些腳本都無濟於事,並且減慢了我的頁面的速度,並導致不良的性能測試結果。
渲染實時站點時,我嘗試在<ajaxToolkit:ToolkitScriptManager />
隱藏<ajaxToolkit:ToolkitScriptManager />
和<cms:CMSPortalManager />
控件,但這會導致具有<cms:CMSWebPartZone />
模板<cms:CMSWebPartZone />
。
有誰知道如何確保在不需要時消除腫脹? 還是至少使這些腳本在頁面末尾呈現,以免對性能造成太大干擾?
不幸的是,使用ASPX和ASPX + Portal Pages在Kentico中構建站點將自動生成其他標記,例如__doPostBack
, WebResource.axd
和ScriptResource.axd
。
我不建議您在母版頁中刪除任何默認代碼。 這將導致事情中斷(如您所經歷的)。
但是,適當放置此標記不會導致頁面性能出現嚴重問題。 可以理解,這不是理想的。
我為減輕打擊而采取的措施如下:
從Kentico文檔中閱讀此文章可更深入地了解一些信息: 優化網站性能
如果您真的想完全控制呈現的HTML,Kentico確實允許您使用MVC創建模板。 但是,這不能讓您靈活地通過在CMS管理中移動Web部件來修改頁面模板。 我想您正是出於這個原因選擇了門戶頁面方法。
我希望這有幫助。
除了@sbhomra的出色答案,我還有一些問題,建議和意見。
您在談論性能多少秒或毫秒? 如果您認為可以節省幾毫秒的時間,那么嘗試重新構建所有功能就不值得您付出努力。 如果說的是一兩秒鍾,則可以在設置和代碼中更改約15種不同的東西,以重新獲得一切。 考慮一下您將要編寫,維護和升級多少代碼,以便獲得第二或更少的回報?
WebResource和SciptResource加載資源,這些資源被編譯到網站內的庫中。 因此,如果有人創建了一個外部庫,並且該庫正在加載已編譯到其中的圖像,那么您將在您的站點上獲得該WebResource.axd引用。 您必須從Kentico實例中物理刪除那些庫。
盡管我不嚴格建議這樣做,因為您會丟失太多功能並且擁有太多不必要的代碼,但是MVC會為您提供所需的控件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.