Javascript 这是不是;“模式”;至于;“hijaxing”;表格可靠吗?
Hijax的定义: Hijax是一个术语,用于将渐进增强应用于 AJAX它也被称为“简化Ajax”。Hijax是由 Jeremy Keith作为一种构建web应用程序的技术 仅通过使用AJAX技术“劫持”表单即可优雅地降级 提交和响应,更新DOM以反映 请求/响应周期Javascript 这是不是;“模式”;至于;“hijaxing”;表格可靠吗?,javascript,ajax,node.js,sails.js,hijax,Javascript,Ajax,Node.js,Sails.js,Hijax,Hijax的定义: Hijax是一个术语,用于将渐进增强应用于 AJAX它也被称为“简化Ajax”。Hijax是由 Jeremy Keith作为一种构建web应用程序的技术 仅通过使用AJAX技术“劫持”表单即可优雅地降级 提交和响应,更新DOM以反映 请求/响应周期 我刚刚开始一个我的爱好项目,我决定“hijax”几乎所有的东西都会很有趣。我使用sails.js(它使用express)作为我的后端框架,在客户端没有框架 Hijaxing常规链接(GETrequests)非常简单,但是PO
我刚刚开始一个我的爱好项目,我决定“hijax”几乎所有的东西都会很有趣。我使用sails.js(它使用express)作为我的后端框架,在客户端没有框架
Hijaxing常规链接(
GET
requests)非常简单,但是POST
请求有点复杂,因为它们修改数据,必须响应操作是否成功,并且(有时)用更新的数据返回更新的视图。
我处理POST
请求(表单POST
s)的方式是
type=submit
属性且属于表单的元素
[CLIENT]以下是一个客户端代码示例,用于发送表单数据并插入响应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]下面是一个示例,说明了当它是POST请求时,AJAX脚本与之通信的控制器类型:
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是否可以?我的意思是,毕竟重定向指令包含在一个标题中,这不是很可靠,或者是吗?我意识到我也可以返回一个视图,但那将不得不复制其他控制器已经完成的代码 谢谢
你是说“劫机”吗?不,我是说“hijax”。听起来很有趣,但这个词是存在的。From:
“Hijax是一个术语,用于对AJAX进行渐进式增强。它是一种用于构建web应用程序的技术,通过仅使用AJAX技术“劫持”表单提交和响应而优雅地降级”
“我意识到我也可以返回一个视图,但那将不得不复制其他控制器已经完成的代码。“-wrt,使用DI/组件可以消除许多重复代码的情况。将逻辑推到控制器中并不比将所有逻辑推到WebFormCodeBehind中好多少。我不使用sails.js,但我可以告诉您我的一般方法。在服务器端,对于正常请求,过程基本上是(1)验证输入,(2)读/写一些数据库,(3)计算一些值,(4)使用模板将这些值放在新页面中发送。我实现“hijax”的方式是:如果请求是AJAX,则将上面的步骤(4)替换为(4)将值放入json对象并返回它。然后客户端使用这些json值来了解页面上要更新的内容。