jos*_*sef 1 javascript node.js pug
我正在尝试进行搜索并将结果发送回同一个站点,我已经有了搜索工作,但我无法将结果发送回去.我希望启动站点在没有页面重新加载的情况下呈现信息.
如何将搜索结果发送回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{
}
}
}
Run Code Online (Sandbox Code Playgroud)
index.jade
extends layout
block content
block child
Run Code Online (Sandbox Code Playgroud)
child.jade
extends index
block child
!{document}
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式执行此操作:
首先,你可以index.jade像这样更新你的:
extends layout
block content
#content
block child
Run Code Online (Sandbox Code Playgroud)
然后,应该有一些函数来调用以获得结果.我会叫它getResults.在该函数的回调中,您现在可以执行以下操作:
getResults(function(results){
document.getElementById("content").innerHTML = results;
});
Run Code Online (Sandbox Code Playgroud)
我希望有所帮助.
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);
Run Code Online (Sandbox Code Playgroud)
意见/ 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()")
Run Code Online (Sandbox Code Playgroud)
运行它node server.js并访问localhost.你应该从中学习它是如何完成的;)
| 归档时间: |
|
| 查看次数: |
4429 次 |
| 最近记录: |