標籤:sharepoint jslink
關於JSLink的一些FAQ
1. JSLink可以被應用在哪裡?
JSLink 可以被應用到fields, Web Parts,列表表單(list form),視圖(view)和內容類型(content type).
2. JSLink檔案可以放到哪裡?
JSLink可以放到SharePoint的任何的文件庫裡,或者layout檔案夾下。放到不同的位置,在引用的時候,首碼也不一樣:
§ ~site—表示要引用的JSLink檔案在當前網站下
§ ~sitecollection—表示要引用的JSLink檔案在當前網站所在的網站集合下
§ ~layouts—表示要引用的JSLink在_layouts/15下
§ ~sitecollectionlayouts—表示要引用的JSlink在當前網站集合的layouts檔案夾下(比如/sites/mysite/_layouts/15).
§ ~sitelayouts—表示要引用的JSlink在當前網站的layouts檔案夾下(比如site/mysite/mysubsite/_layouts/15).
3. JSLink都能改哪些地方?
用於註冊修改方法的template對象有以下屬性:Header, Body,Footer, OnPreRender, OnPostRender, Group, Item and Fields。可以在這些地方做相應的重寫,來改變顯示樣式
4. 要修改一個列表的所有表單,應該如何寫?
如果要修改一個filed的在不同表單上的樣式,可以按照下面的例子來寫,分別是View, DisplayForm, EditForm, NewForm。
siteCtx.Templates.Fields= { //MyCustomField is the Name of our field 'MyCustomField': { 'View': customView, 'DisplayForm': customDisplayForm, 'EditForm': customNew, 'NewForm': customEdit }};
5. JSLink vs. XSL/XSLT
JSLink相對於XSL/XSLT有一些優勢。首先它使用的是JavaScript,絕大多數的Web開發人員都很熟悉。XSLT在開發和調試上都比較難。因此JSLink可以減少開發時間和成本。
在用戶端使用JavaScript, HTML和CSS來渲染,避免了對伺服器的不必要的負載,提高了總體的載入速度,使頁面有更好的響應。
再有就是,使用JSLink你可以定製化一個視圖的所有的部分。比如,如果你只想定製化一個field,你只要重寫這部分邏輯就可以,其他的部分還是按照以前的邏輯。使用JSLink,你也可以使用JaveScript,包括一些流行的外掛程式,比如jQuery。
當然,任何技術都有不足,JSLink也是。比如,如果使用者的瀏覽器阻止了JaveScript,JSLink就不好用了。使用XSLT的伺服器端渲染,就不會有這個問題,但是會有效率問題。
如果一個使用者的瀏覽器或者系統非常的舊,那麼執行Script也會使秀安然速度下降。
最終,搜尋引擎耙梳的時候,更喜歡靜態html代碼,而不是由Ajax/JavaScript產生的動態內容。因此如果你的網站是面向公用的,那麼JSLink並不是最好的選擇。
SharePoint JS Link 之(五)關於JSLink的一些FAQ