关于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并不是最好的选择。