在不重新加载用户页面的情况下使用 GET 请求中的数据

Using data from GET request without user's page reloading

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

让我们想象一下用户在浏览器的地址栏中输入 "www.app.com/data"。我想根据此 数据 从数据库获取响应,将其发送回用户并为他呈现基本 'www.app.com' 页面并在其中实现数据库响应。

我对两个选项很好奇:重新加载和不重新加载页面的最佳方法是什么,例如,如果用户已经在页面上并且我不想重新加载它 - 只需相应地更改为 db响应。

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

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

但是接下来我要做什么?我正在考虑通过 sockets.io 发送响应,我正在使用它,但是我怎样才能结束这个 GET 而无需重新加载用户页面?如果我必须发回一些东西,我可以通过使用 ejs 再次呈现此页面来响应,但是我不能依赖 sokets,因为在重新加载时 - 他与它们断开连接。

你能解释一下我的困惑吗?

最后我在 URI 中使用 URI Fragment identifier#
如果用户输入 http://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 也会触发。