在不重新加载用户页面的情况下使用 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
也会触发。
所以,主题是 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
也会触发。