当前位置: 首页 > news >正文

用jQuery怎么做到前后端分离

传统的web开发模式想必大家都知道,不管是jsp、asp、php或者一些魔板引擎开发,其实道理都是一样的,都是服务端渲染,原理是:浏览器发送一个get请求,服务器对应的返回前端一个html页面,由浏览器渲染,一张网页就呈现在用户面前了。

但是今天要说的就是大家一直在谈论的话题了,那就是“前后端分离的开发模式”,它的好处自然不必多说,那用我们最熟知jquery能不能做到前后端分离开发呢?答案是可以的!

具体实现也很简单,前端工程师通过ajax访问后台接口(可能会遇到跨域问题,详见上一篇文章)如下:

> $.ajax({
>     type:'get',
>     url:'/api',
>     data:{user:'小明','tel':12345xxxxx}
>     success:function(data){
>         console.log(data)
>     } })

通过一手ajax你可调用任何api,与后台通信不是什么难事。
但是渲染这块就很麻烦了,你可以选择的渲染方式有:append()、html()、text()等,总之很麻烦。

接下来说一说路由问题和页面之间传参问题,我用jQuery做的前后端分离项目一般没有路由,直接就是连接的形势跳转页面,虽然这样很不妥,但是好像也没啥办法。页面传参这哭基本可以解决,你可以通过地址栏传参,另一个页面通过js获取地址栏参数,进而实现地址栏传参这件事。

总之,jquery实现的前后端分离是不完美的,成本也是很高的,新手可以试试,建议学习vue或者angular.js 之类的高级框架。
有说的不对的地方欢迎技术大牛评论指正!以上仅代表我的个人观点。

相关文章:

  • 第三次冲刺
  • WPF自学入门(九)WPF自定义窗口基类
  • mongodb的数据库操作
  • php转义之gpc
  • 软件工程网络15结对编程作业
  • FZU OJ:2230 翻翻棋
  • 说说网络通信模型
  • Rust 和Erlang的对比
  • 继续吐槽在net下没有合适的Disk Cache之使用EhCache
  • 默认形参值
  • 第39级台阶 每步1个或2个台阶 有多少种上法
  • 元素拖放
  • 一、python与pycharm的安装
  • BZOJ4071 洛谷3644 UOJ112:[APIO2015]巴邻旁之桥——题解
  • xtrabackup 在线主从搭建
  • angular2 简述
  • Invalidate和postInvalidate的区别
  • k个最大的数及变种小结
  • Laravel 菜鸟晋级之路
  • Meteor的表单提交:Form
  • oschina
  • React-redux的原理以及使用
  • scala基础语法(二)
  • SpringBoot 实战 (三) | 配置文件详解
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 技术胖1-4季视频复习— (看视频笔记)
  • 如何设计一个微型分布式架构?
  • 山寨一个 Promise
  • Linux权限管理(week1_day5)--技术流ken
  • ​linux启动进程的方式
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • (C语言)二分查找 超详细
  • (七)c52学习之旅-中断
  • (新)网络工程师考点串讲与真题详解
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原創) 物件導向與老子思想 (OO)
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .Net core 6.0 升8.0
  • .NET Micro Framework初体验(二)
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • /3GB和/USERVA开关
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • [20181219]script使用小技巧.txt
  • [android] 切换界面的通用处理
  • [C# WPF] 如何给控件添加边框(Border)?
  • [CERC2017]Cumulative Code
  • [CodeForces-759D]Bacterial Melee
  • [datastore@cyberfear.com].Elbie、[thekeyishere@cock.li].Elbie勒索病毒数据怎么处理|数据解密恢复
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [docker]docker网络-直接路由模式
  • [Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具
  • [fsevents@^2.1.2] optional install error: Package require os(darwin) not compatible with your platfo