Plone5 livesearch功能的实现分成两部分:
- 前端UI及AJAX由mockup 采用Pattern方式完成
- 后端由Products.CMFPlone 包的browser子包下的search 模块的一个 名为ajax-search视图完成
...
<browser:page
name="ajax-search"
class=".search.AjaxSearch"
permission="zope2.View"
for="plone.app.layout.navigation.interfaces.INavigationRoot"
/>
...
- livesearch默认设置参数
defaults: {
ajaxUrl: null,
perPage: 7,
quietMillis: 350,
minimumInputLength: 4,
inputSelector: 'input[type="text"]',
itemTemplate: '<li class="search-result <%- state %>">' +
'<h4 class="title"><a href="<%- url %>"><%- title %></a></h4>' +
'<p class="description"><%- description %></p>' +
'</li>',
},
参数注释:ajaxUrl :接受ajax请求,完成查询,并将结果dump到前端的视图名称;perPage每页显示的结果条目个数;quietMillis 启动查询前等待的毫秒数;minimumInputLength输入至少多少个字后,开始发出查询请求;inputSelector提取搜索关键词的selector;itemTemplate 返回结果集合中每个条目的显示模板。