Hijax的定义:
Hijax是渐进增强应用的术语 AJAX。它也被称为简化的Ajax'。 Hijax是由提议的 Jeremy Keith作为构建Web应用程序的技术 仅使用AJAX技术优雅地降级并劫持'形成 提交和回复,更新DOM以反映结果 请求/响应周期。
http://en.wikipedia.org/wiki/Hijax
我刚刚开始了我的一个爱好项目,我认为这将是有趣的" hijax"几乎所有的东西。我使用sails.js(使用express)作为我的后端框架,而在客户端没有框架。
Hijaxing常规链接(GET
请求)非常简单,但POST
请求稍微复杂一些,因为它们修改数据并且必须响应操作是否成功,并且(有时)使用更新的数据回馈更新的视图。
我处理POST
请求(表单POST
)的方式是......
type=submit
属性且属于form
的任何元素的点击次数。[客户端] 以下是发送表单数据并插入响应HTML的客户端代码示例:
function ajaxSend(form) {
var xhr = new XMLHttpRequest(),
formData = new FormData(form);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
var response = xhr.responseText;
UI.body.innerHTML = response;
}
}
}
xhr.open("POST", form.action, true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.send(formData);
}
[SERVER] 以下是这个AJAX脚本在发出POST请求时与之通信的控制器类型示例:
User.update({ id: req.user.id }, {
}).exec(function done(err, updated) {
if(err) return res.redirect('/profile?err');
return res.redirect('/profile');
});
我的所有正常GET
路由已经处理了要服务的数据,具体取决于是否从AJAX请求它们。这就是res.redirect()
也返回适当的HTML(部分位或完整的东西)的原因。我认为如果验证/数据发布出错,我也可以发送Flash消息和重定向。
所以我的问题是,是否可以依赖res.redirect()在数据库修改完成后发回我想要呈现的HTML?我的意思是,毕竟重定向指令包含在标题中,并且不是非常可靠,或者是它?我意识到我也可以返回一个视图,但那时必须复制其他控制器已经完成的代码。
感谢。