更新玉的一部分页面?
我试图进行search,并将结果发送回相同的网站,我有search工作,但我不能得到的结果被送回。 我想要起始站点呈现没有页面重新加载的信息。
如何将search结果发送回index.jade页面而无需更新?
function pagelist(items, res) { var document=''; var db = db_login; if ( items != null){ items.forEach(function(item) { document += '<a href=share/'+item._id+' class="searchElement">' document += item.document document += '</div>' }) if(document != ''){ res.send(document); }else{ } } }
index.jade
extends layout block content block child
child.jade
extends index block child !{document}
你可以这样做:
首先,你可以像这样更新你的index.jade
:
extends layout block content #content block child
然后,应该有一些你打电话来获得结果的function。 我会叫它getResults
。 在该函数的callback中,您现在可以执行以下操作:
getResults(function(results){ document.getElementById("content").innerHTML = results; });
我希望有帮助。
UPDATE
我会给你一个完整的例子:
server.js
var express = require("express"); var i = 0; function getResults(cb){ cb("<div>Result "+(i++)+"</div><div>Result "+(i++)+"</div><div>Result "+(i++)+"</div>"); } var app = express(); app.set("view engine","jade"); app.get("/",function(req,res){ getResults(function(results){ res.render("page",{results:results}); }); }); app.get("/results",function(req,res){ getResults(function(results){ res.writeHead(200,"OK",{"Content-Type":"text/html"}); res.end(results); }); }); app.listen(80);
意见/ page.jade
doctype html html head script. function update(){ var req = new XMLHttpRequest(); req.open("GET","/results"); req.onreadystatechange = function(){ if(req.readyState == 4){ document.getElementById("content").innerHTML = req.responseText; } } req.send(); } body #content!= results input(type="button",value="Update",onclick="update()")
运行它与node server.js
并访问本地主机。 你应该从中学习它是如何完成的;)