thinkphp5.0.3+H-ui-admin中同步和异步方式提交对比(1)

本文对比了ThinkPHP5.0.3框架下,同步和异步方式在表单提交时的区别。同步方式涉及form表单提交,页面跳转,而异步方式利用ajax在当前页面完成操作。虽然Controller和Model层处理类似,但异步提交更符合常规操作,如成功后自动刷新表格并显示成功提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       thinkphp5开发仿百度糯米 https://coding.imooc.com/class/85.html

      同步方式:  (前端)form表单 -> submit自动把form中元素以键值对方式组装成一个数组,抛送给action中url(控制器)

                     ->(页面跳转到控制器)接收数据->(可选)validate验证 

                     ->(数据库)-> curl操作,返回结果给控制器

                     ->(控制器直接发布结果 或在控制器中写前端页面的重定向)


       异步方式 : (前端)绑定js函数 -> 自己把form数据组装数组(同步是submit自动)->ajax(把组装好的数组发送到url)

                     ->(js把数据抛送到控制器,但页面还在当前页面)接收数据 ->(可选)validate验证

                     ->(数据库)->curl操作,返回结果给控制器

                     ->(当前页面ajax中的回调函数)->返回给ajax回调函数,根据从控制器回调的结果,在前端当前页中实现不同操作


       对比来看,同步和异步在Controller层和Model层的操作基本一致,唯一不同在于同步是页面需要跳转到不同的页面,而异步始终在当前页。

       <同步-view>


 
       <同步-controller> 

      <同步-validate>

        <同步-model>

      页面展示



       $this->success()方法默认返回的之前页面($_SERVER['HTTP_REFERER'])


      所以跳转回添加页(添加成功后等待3秒后又跳转回添加页)


       但这一套流程比较不符常理,正常的操作(之前使用easyui)为:若ajax回调的结果成功,添加页销毁,表格(datagrid)自动刷新,并提示成功。

       下面开始改写异步方式
       前端从action变为post,指定id在js中绑定



       ajax(layui弹出层封装好dialog类供调用)


      控制器改进(1)——封装show方法(th5 common.php)


      控制器改进(2)validate层保持不变


      model层改进


      完成后既可在当前页面报错,成功后添加页面自动销毁,父页面刷新




      

      

                  


       

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值