其他分享
首页 > 其他分享> > 删除记录的最佳方法是什么:Laravel 5.2.15

删除记录的最佳方法是什么:Laravel 5.2.15

作者:互联网

我正在使用Laravel 5.2.15.

网页中有记录列表,每个记录都有“编辑”和“删除”按钮.我有两种删除记录的方法

>使用JQuery并将Ajax请求发送到服务器.
>在每行中放置一个用于删除按钮的表单标签.
我有以下问题

  1. In case I use Approach 1, can it cause any issue when the site will be viewed from Android or iPhone? I have another option to do Server side validation using Request class.
  2. In case of Approach 2, Will it make the page heavy? I am using Pagination, so 10 records will be displaced per page.
  3. Please guide me if I should go with which approach or please suggest if both approaches are incorrect.

解决方法:

您所提出的问题并不真正着眼于选择一个优先于另一个的主要原因.它们的主要区别在于将请求发送到服务器的方式以及刷新页面以显示结果的方式.

使用Ajax是一种非常常见的方法,它依赖于使用Javascript,这是很长一段时间以来在所有浏览器中都可用的技术.兼容性将不会成为问题,因为如果没有它,大多数Internet都将无法运行(您甚至可以使用第二种方法作为后备机制来使其工作).您发送的请求通常是对REST endpoint的HTTP DELETE请求,以便服务器随后知道删除record1.从服务器收到成功响应后,页面负责通过删除与刚删除的记录相对应的行来更新自身,并有可能获取新记录以使该页面上仍有10行.无需刷新页面,但需要一些Javascript.

您的第二种方法是旧式的,因为您提交的表单包含某种标识符,以便服务器知道该做什么.这是一个完整的页面加载,如果要正确执行,则应该是HTTP POST请求.在Post/Redirect/Get惯用语之后,服务器随后发送重定向响应,以便浏览器随后将触发另一个普通页面加载作为GET请求,以向用户显示更新的记录列表.您不必自己手动更新页面,而以重新加载烦人的页面为代价(在当前的时代已不再期望这样做了).

我的建议是采用第一种方法.这是一种现代的处理方式,并允许具有非重装页面.但是,它确实需要在客户端(使用Javascript)进行一些额外的工作来相应地更新页面.

附带说明一下,在两种情况下都必须真正注意CSRF.始终在服务器上执行的每个“更新”操作中都包含CSRF令牌.

1当然,您必须自己编写程序:)

2浏览器通常不支持GET和POST,尽管HTTP规范允许更多的请求方法.

标签:laravel-5-2,laravel-5-1,php
来源: https://codeday.me/bug/20191027/1942793.html