先上代码:
/*按需加载*/
function sendsearch() {
queryString();
var url = "/xwiki/rest/wikis/xwiki/query?q="+sqlStr+"&type=hql";
var str = "";
S.one(".searchresultnum span").html("0");
S.IO.get(url,{},function(data) {
// var xmlDoc = loadXMLDoc(data);
var node = data.getElementsByTagName("title");
S.one(".searchresultnum span").html(node.length);
if(node.length < 15) {
num = node.length;
S.one(".clickMore").hide();
for (var i = 0; i < num; i++) {
var title = node[i].childNodes[0].nodeValue;
if(title != "Search"){
str += "<li><a href='/xwiki/bin/view/人物/" + title + "'>";
str += "<img src='/xwiki/bin/download/人物/" + title + "/avaterImg.jpg'/>";
str += "<div></div></a>";
str += "<h2>" + title + "</h2>";
str += "<p class='intro'></p></li>";
}
}
S.one(".resultlist").html(str);
S.all(".loading").remove();
} else {
num = 15;
S.one(".clickMore").show();
S.one(".clickMore").on("click", function() {
console.log(num);
if(num > node.length) {
num1 = node.length;
num2 = num - node.length;
console.log(num1);
console.log(num2);
} else {
num1 = num;
num2 = 15;
console.log(num1);
console.log(num2);
}
for (var i = num1 - num2; i < num1; i++) {
var title = node[i].childNodes[0].nodeValue;
if(title != "Search"){
str += "<li><a href='/xwiki/bin/view/人物/" + title + "'>";
str += "<img src='/xwiki/bin/download/人物/" + title + "/avaterImg.jpg'/>";
str += "<div></div></a>";
str += "<h2>" + title + "</h2>";
str += "<p class='intro'></p></li>";
}
}
S.one(".resultlist").html(str);
S.all(".loading").remove();
if(num < node.length){
num = num + 15;
} else {
num = 15;
S.all(".clickMore").html("暂无更多内容");
}
}).fire("click");
}
}, "xml");
}
其中queryString()的作用就是拼接检索条件,因为里面涉及公司内部数据,故暂不公开,大家只要知道他的功能就可以了。不过我还是觉得这样写代码实现是实现了,但是效率不高,正思考加入js面向对象的特性改进下。大家有什么好的建议可以提下。
KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架。
它具备模块化、高扩展性、组件齐全,接口一致、自主开发、适合多种应用场景等特性。
有兴趣的读者可以访问他的API:http://docs.kissyui.com/