使用来自GET请求的数据而无需用户的页面重新加载

所以,这个主题是Node.js + express + ejs + socket.io + mongoose所有最新版本的单页网页应用程序。

让我们想象一下用户在他的浏览器的地址栏“www.app.com/ data ”中的input。 我想根据这个数据从db中获取响应,并把它发回给用户,并为他提供基本的“www.app.com”页面,并在其中执行db响应。

我很好奇两个select:什么是最好的方式来做到这一点与没有页面重新加载,例如,如果用户已经在网页上,我不想重新加载它 – 只是相应地改变数据库响应。

我可以从他的获取请求中获取这些数据:

app.get('/:id', function (req, res) { console.log('got' + req.params.id); ///some db magic here... poof, response ready/// }) 

但接下来我做了什么? 我正在考虑通过sockets.io发送响应,但是我怎么才能在不重新加载用户页面的情况下结束这个GET? 如果我必须发回一些东西,我可以通过ejs再次渲染这个页面来做出回应,但是当我重新加载的时候,我不能依靠sokets,cos。

你能解释我的困惑吗?

最后我使用的是URI Fragment identifier
如果用户inputhttp://YourAwesomeApp/#hashtag ,则可以使用此侦听器来捕获hashtag

 window.onhashchange = function () { var hash = location.hash.substr(location.hash.indexOf("#") + 1); //now hash = hashtag, do your stuff. }; 

这完全符合我的需求。

请注意,如果通过JS( location.hash = something )更改散列值,那么window.onhashchange也会触发。