前端websocket解析换行(前后端数据应该如何科学交互)

本文目录
- 前后端数据应该如何科学交互
- web前端和后端结合的重要性
- HTTP全知道(上)
- Web前端工程师初级阶段需要掌握的内容
- 前端websocket开启时机
- (二)数据推送之websocket
- websocket修改表格某一条数据
前后端数据应该如何科学交互
这次给大家带来前后端数据应该如何科学交互,前后端数据交互的注意事项有哪些,下面就是实战案例,一起来看一下。
HTML赋值
JS赋值
script填充JSON
AJAX获取JSON
WebSocket实时传输数据
总结
1. HTML赋值输出到 Element 的 value 或 data-name
《div data-value="《?php echo $user_avatar;?》"》《/div》渲染结果
***隐藏网址***
$(’div’).data(’avatar’);优点:不占用全局变量,由 JS 自由获取。
使用建议:适合传递简单数据,也非常适合多个简单数据与 Element 绑定关系。
《li》nimojs 《span data-userid="1" 》删除《/span》《/li》
《li》nimo22 《span data-userid="2" 》删除《/span》《/li》
《li》nimo33 《span data-userid="3" 》删除《/span》《/li》
《li》nimo44 《span data-userid="4" 》删除《/span》《/li》
《li》nimo55 《span data-userid="5" 》删除《/span》《/li》《/ul》《script》
$(’span’).on(’click’,function(){
$.post(’/ajax/remove/’,$(this).data(’userid’),function(data){ // ... })
})《/script》2. JS赋值
将数据填充到 《script》 的 JavaScript 变量声明中。
《script》
var user_avatar = "《?php echo $user_avatar;?》";
// 渲染结果
***隐藏网址***
《script》
var user_avatar = "{$user_avatar}";《/script》优点:传递数据非常方便。前端直接调用 user_avatar 变量使用数据。
缺点:
为了传递一个字符串数据占用了全局变量 user_avatar,当有很多数据需要传输时则会占用很多全局变量。
如果返回数据存在换行将会导致JS报错
***隐藏网址***
优化:可以通过指向的某一个变量存放所有后端返回的内容,最小程度占用全局变量。例:// PHP 代码var SERVER_DATA = { username: {$username}, userid: {$userid}, title: {$title}}// 渲染结果var SERVER_DATA = { username: "NimoChu", userid: 1, title: ’F2E’}
使用建议:需要最快速度传递数据给 JS 并十分确定此数据稳定时,使用此方式。数据格式复杂的建议使用script填充JSON 或AJAX获取JSON 方法。
3. script填充JSON****JSON 语法**填充 JSON 数据到 《script》 标签中,前端通过 DOM 获取 JSON字符串并解析成对象。
《script type="text/template" id="data"》{"username":"nimojs","userid":1}《/script》《script》
var data = JSON.parse($(’#data’).html()); //{username:"nimojs",userid:1}《/script》优点:页面加载完成后就可以获取到数据。不占用全局变量,可传递大量数据集合。
缺点:数据量特别大时会导致页面初次加载变慢。变慢并不只是文件大小导致的,也因为服务器查询数据并返回合集是需要时间,可使用AJAX获取JSON完成按需加载和加载等待。
使用建议:适合传递在DOM加载完成时就需要用到的大量数据集合。例如:前端控制页面渲染,后端将JSON数据源填充到 《script》 由前端使用 JavaScript模板引擎 进行页面渲染。如何选择Javascript模板引擎(javascript template engine)?
4. AJAX获取JSON使用 AJAX 获取JSON数据
《span id="showdata"》查看资料《/span》
《div style="display:none;" id="box"》
《h3》用户信息《/h3》
《p id="info"》!(loading.gif)《/p》
《/div》
$(’#showdata’).on(’click’,function(){
$(’#box’).show();
$.getJSON(’/ajax/userdata/’,function(oData){
// oData = {"username":"nimojs","userid":1}
$(’#info’).html(’用户名:’ + oData.username + ’《br》用户ID:’ + oData.userid);
})
})这是一个通过AJAX 获取用户资料的示例。流程如下:
页面上只显示查看资料
用户点击查看资料
显示用户信息和 loading 图片
向服务器发送获取用户信息的AJAX请求
服务器返回JSON字符串,$.getJSON 自动将返回的 JSON字符串转换为对象
填充内容到 《p id="info"》
优点:不占用全局变量和 DOM 节点,可以自由控制获取数据的触发条件(页面加载完成时、用户点击查看资料时或用户点击某个按钮时)。当开始获取数据时可使用 loading 图片占位提示用户数据正在读取。防止页面加载所有数据导致的页面加载缓慢。
缺点:会产生额外的HTTP请求。不能在DOM加载完成以后立即获取,需要发送请求-接收响应。
使用建议:适合加载非主要信息、设定触发条件(用户点击查看资料时),并提供友好的数据读取等待提示。
5. WebSocket实时传输数据如果将 AJAX请求和响应比喻成给服务器发短信和等待服务器回复短信,而 WebSocket 就如同和服务器打电话。
此处不对WebSocket做过多介绍,附上参考资料:
WebSocket**使用 HTML5 WebSocket 构建实时 Web 应用**
Ajax vs WebSocket**6. 总结每种情况都有每种情况的用处,没有绝对正确的方法。根据实际情况灵活的选择获取数据方式。
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
相关阅读:
html的盒模型详解
bootstrap-validator使用详解
sublime怎样快速的创建html头部代码
web前端和后端结合的重要性
具有及时性,有效性,美观性这三个重要特性。原因如下:
及时性:通过前端与后台的结合能够让两者及时通信,采用websocket的技术方法去实现,增强了用户的体验效果。
有效性:前端输入的数据并不能去判断这个数据是否合法,而是需要后端通过程序去判断,合法就把数据存入数据库,不合法则丢弃。
美观性:后端只是做业务逻辑的处理,而前端则需要设计,需要美感。
只有前端和后端的结合才能行程一个完美的系统,二者缺一不可。
前端的优势是门槛低,非常容易入门,但是后期发展你需要不断学习各种技术框架,后端需要一定的编程基础或者对编程感兴趣的,要求有很强的逻辑思维能力。
HTML5其实只是前端开发中重要的一部分技术,是现在前端开发的标准组件,特别是在移动端的特效开发、游戏开发,以及APP的开发方向上非常流行。web前端是一个做有关网页的一个概述,是一个网页view层的总得称呼。前端开发,简单来说,就是把平面效果图转换成网页,把静态转换成动态。它的工作包括了:切图、写样式、做鼠标效果和图片切换效果等。
而优秀的前端开发可以保障实现这些效果的同时,即不能影响网站的打开速度、浏览器兼容性还有搜索引擎的收录,还可以让用户体验更加舒适,使网站在访问中显得更精细、更用心。访客使用起来更简便。
H5是2014年更新的一个web设计的标志和一些新的语法,HTML5是HTML标准,它本身是一项标准化协议。H5开发通常意义上指使用HTML5等较为潮流的技术进行前端开发。现在完成一些页面制作、WebAPP、微网站开发以及网页游戏等,现在都是使用HTML5标准完成的。
HTTP全知道(上)
***隐藏网址***
起始行 + 头部 + 空行 + 实体
返回报文***隐藏网址***
在起始行中,每两个部分之间用空格隔开,最后一个部分后面应该接一个换行。
常用的有:
RFC 规定 HTTP 的状态码为三位数,被分为五类:
1xx: 表示目前是协议处理的中间状态,还需要后续操作。在 HTTP 升级为 WebSocket 的时候,如果服务器同意变更,就会发送状态码 101。
2xx: 表示成功状态。
3xx: 重定向状态,资源位置发生变动,需要重新请求。
4xx: 请求报文有误。
5xx: 服务器端发生错误。
对数据进行编码压缩的,压缩方式就体现在了发送方的Content-Encoding字段上, 同样的,接收什么样的压缩方式体现在了接受方的Accept-Encoding字段上。
gzip: 当今最流行的压缩格式
deflate: 另外一种著名的压缩格式
br: 一种专门为 HTTP 发明的压缩算法
在接收端对应为Accept-Charset,指定可以接受的字符集,而在发送端并没有对应的Content-Charset, 而是直接放在了Content-Type中,以charset属性指定。
对于大文件来说,一次性全部传输显然是不现实的,会有大量的等待时间,严重影响用户体验。因此,HTTP 采取了范围请求来解决允许客户端仅仅请求一个资源的一部分。要支持这个功能,就必须加上这样一个响应头: Accept-Ranges: none 来告知客户端这边是支持范围请求。
Content-Range字段,0-9表示请求的返回,100表示资源的总大小,很好理解。
Content-Type: multipart/byteranges;boundary=00000010101 ,它代表了信息量是这样的:
在响应体中各段数据之间会由这里指定的分隔符分开,而且在最后的分隔末尾添上--表示结束。
***隐藏网址***
相应的请求体是下面这样:
Web前端工程师初级阶段需要掌握的内容
今天小编给大家整理出来了Web前端工程师初级阶段需要掌握的内容,很全面,希望大家好好阅读,看看自己掌握的知识点和文章里面写的还相差多少。下面来和小编一起看一看吧!
一、什么是初级Web前端工程师?
按照我的想法,我把前端工程师分为了入门、初级、中级、高级这四个级别,
入门级别指的是了解什么是前端(前端到底是什么其实很多人还是不清楚的),了解基本的html、css和javascript语法(这些语方面的东西网上随便搜一下就有很多很多,基本的语法是整个技术体系最重要的东西了,领先的
Web技术教程),可以根据设计师的设计图在不考虑兼容性的情况下把页面做出来,了解过一些框架的使用(例如烂大街但是依然牛逼的jQuery、zepto、
bootstrap等等)。
在经历过入门的阶段,已经了解了前端要做什么,并且把基本的语法学习过了可以独立做一些简单的页面了,那么就要继续学习达到初级前端工程师的水平,对于初级的前端工程师需要了解的就特别多了,需要对整个前端有一个清晰的认识,并且熟练使用各种技术,我感觉在校的学生达到初级水平就可以通过bat的校招笔试
面试了。
初级前端工程师:首先要知道的就是如何处理各种浏览器的兼容处理(比如说在IE浏览器中的createElement有什么不同等等内容),现在基本上每个公司在招聘的时候都会要求熟练html5,
css3,javascript,这个熟练的意思就是信手拈来。
在下面会说初级前端工程师应该具体的学习哪些知识,然后就是要了解各种css的预处理器和后处理器,还有会使用常见前端的MV*框架(angularjs,
backbone,reactjs等等)并知道这些框架的原理,另外就是要熟练使用nodejs,要会使用基于node的各种前端构建工具
(grunt,gulp等等),熟练使用github或gitlab,对模块化、组件化、工程化、语义化有一个比较深入的了解,最后要知道如何开发移动端
的页面,如何去优化一个页面的性能。
二、初级Web前端工程师的技术体系
(一)HTML部分
首先是要掌握一些常用标签的使用和他们的各个属性,这些常用的标签我总结了一下有以下这些:
html:页面的根元素。head:页面的头部标签,是所有头部元素的容器。body:页面的主体标签,页面展现的内容就放置在这里面。title:页面的标题。meta:位于文档的头部,提供页面的元信息,包括关键字、描述等等。link:定义文档与外部资源的关系,最常用的用途就是引入样式表。script:脚本标签,可以把js脚本代码放置在这个标签内,也可以使用这个标签的src属性引入一个外部标签。style:样式标签,可以把css代码写在这个标签中。a:超链接,href属性代表要链接到的地方,target属性代表打开方式。img:图像标签,src属性表示图片的位置。form:表单元素,它内部的input、select、textarea等标签都是比较重要的。div:定义文档中的分区或节,可以使用div来进行页面的布局等操作。另外还有ul、li、p、button、iframe、p、table等标签也很常用,nav、section、article、header、aside、footer等语义化标签也需要了解一下。
除了要了解上面这一些标签之外,还需要对一些新的HTML5的API有一定的了解:
·audio、video标签。
·Canvas:定义图形,比如图表和其他图像。
·input标签的accept属性,email、phone、url等类型。
·getElementByClassName根据class名来获取一个元素结点。
·Multiplefileselection多文件选择属性。
·html的import、template
·process标签,WebGL等内容。
还有一些要知道的知识点:
1.
doctype的作用。2.unicode、utf8等编码的原理和区别。3.如何进行页面性能优化。4.png、jpg、Webp、gif等图片格式的不同的优势。5.HTML行内元素与块级元素的区别。6.移动Web端开发常用head标签。7.Web语义化。8.浏览器中的缓存原理
(二)CSS部分
关于css这一块,我的看法就是网上下载一个chm格式的css的参考手册,然后根据手册里面写的一个个的都敲一下。
css大体分为下面这几块知识点:
①定位布局
1.position属性的7个值(static|relative|absolute|fixed|center|page|
sticky)分别有什么作用和不同?
2.实现品字形布局或者是三栏布局(左右宽度固定,中间适应屏幕)。
3.浮动与清除浮动的方法,flex布局,grid布局。
②盒子模型
1.margin、padding、border这三个属性。
2.伸缩盒相关内容。
3.Multi-columnLayoutModule多列布局模型。
③文本字体
1.强制换行与不换行,清除空白。
2.文本对齐、大小(如何设置chrome小于12px的字体)、缩进、转换。
3.单位(em、rem、px等),颜色(rgb、rgba,hls)。
④变换、过渡和动画
1.transform的各种取值的作用与兼容性。
2.transition过渡的动画类型,贝塞尔曲线的原理。
3.animation动画的各种设置,@keyframes规则。
4.浏览器的重绘与重排。
⑤选择器
1.选择器的分类,权值和优先级。
2.有哪些属性可以被继承,哪些属性没法继承。
3.伪类和伪元素分别是什么,有什么作用。
上面这些都是基础的东西,除了这些基础的内容之外需要了解Less、Sass、stylus等css预处理器,这将会大幅度提升你的css开发效率,也需要了解一下Autoprefixer、PostCSS等css后处理器。
(三)JavaScript部分
在这里就不说js的基础知识了,我把js按照语法的层次和使用的层次分为了两大块。
按照语法的层次来说:
首先是javascript的面向对象方面的内容:在javascript中实现封装、继承和多态。
①封装:在js中可以通过闭包、作用域和作用域链来实现封装,ES6的const、let的作用。②
继承:基于原型链的继承、基于构造函数的继承、组合式继承、寄生式继承等,外加ES6的class关键字,prototype和__proto__。③
多态:在javascript中多态是使用arguments来实现的,关于arguments会引申出来很多内容:1.arguments的caller、callee等方法的作用。2.方法的apply和call的作用和不同。3.使用Array.prototype.slice.call来把一个数组对象转化为数组。4.array的各种方法,如shift、splice、push、filter、map、reduce、forEach等等。
然后是Js的设计模式,比如说那三种工厂模式啊,建造者模式啊等等。
最后是在不同情况下的this分别都代表什么。
按照使用的层次来说:
首先最主要的就是ajax,ajax的原理,ajax跨域的方法:jsonp、使用iframe的location.hash、postMessageAPI、Websocket、服务器代理等等。
***隐藏网址***
最后是一些新的js的API,例如文件读取(fileReader)、fetch、Promise、Web
Sockets等等内容,可以去caniuse上面看一下有哪些新的东西。
上面我所说的这些只是一些比较笼统的概念,把前端html、css和javascript所需要掌握的部分内容列举了一下,在前端领域还有很多需要我们知道的知识,这需要大家在学习工作的过程中去自己总结。
以上就是小编今天为大家分享的关于Web前端工程师初级阶段需要掌握的内容的文章,希望本篇文章能够对正在从事Web前端工作的小伙伴们有所帮助,想要了解更多Web前端相关知识记得关注北大青鸟Web培训官网。最后祝愿小伙伴们工作顺利!
前端websocket开启时机
前端websocket开启时机是什么?前端websocket开启时机是:
1、页面加载完成后:可以在页面加载完成后立即尝试建立WebSocket连接,这可以确保在页面完全加载后开始与服务器进行实时通信。
2、用户交互触发:可以根据用户的交互行为(如点击按钮、提交表单等)来触发WebSocket连接的建立,这样可以确保只在必要时才建立连接,避免不必要的网络开销。
3、授权或登录完成后:应用需要用户认证或授权,可以在用户成功完成登录或授权后建立WebSocket连接,这样可以确保只有合法的用户才能与服务器进行实时通信。在前端中,WebSocket是一种用于在客户端和服务器之间建立持久性连接的通信协议。
(二)数据推送之websocket
websocket它是一种长连接,通过websocket我们能实现后端向前端推送数据,前端也可以向后端推送数据。这里我们主要讲前端H5 websocket怎样和nodejs配合。
因为它承载了socket大部分功能,而且相对稳定
文件在node_modules/socket.io-client/dist/socket.io.js
websocket修改表格某一条数据
题主是否想询问“websocket怎么修改表格某一条数据?”websocket修改表格某一条数据步骤如下:
1、确保后端服务器已经支持WebSocket协议,并且已经编写了WebSocket相关的逻辑处理程序。
2、在前端页面中创建WebSocket连接对象,并指定连接到的服务器地址和端口号。
3、在连接成功后,可以发送特定的消息给后端服务器,以请求修改表格中的某一条数据。
4、后端收到消息后,根据消息中携带的具体参数进行相应的数据处理和更新操作,并将结果通过WebSocket协议返回给前端页面。
5、前端接收到后端返回的数据后,更新相应的表格数据。

更多文章:
aggressive style 中文(don’t be aggresstive翻译)
2026年4月29日 00:15
简述access数据库的基本功能(Access数据库数据中有哪些基本组件简述他们的基本功能)
2025年6月6日 06:30
js字符串转date类型(js怎么把string转换成date)
2025年8月11日 06:00
computer加er(computer加er的变形是什么意思)
2025年9月1日 14:00
源程序长什么样(c++中什么是源程序什么是编译程序C语言的源程序结构是怎么样的)
2026年9月13日 11:45
ospf协议报文有哪些类型分别是什么作用(OSPF协议有什么作用)
2025年5月27日 09:15
compete的高考考点(高考英语必背C字母开头的单词(5))
2025年12月17日 12:00
js判断页面是否加载完成(js怎么判断div下的内容全部加载完毕)
2025年11月30日 01:15
杨颖极端侮辱(杨颖将自己名誉权获赔款捐赠,你是否能理解她的这般举动)
2025年7月28日 22:00
获取unionid(微信小程序-新用户获取微信手机号登录服务端获取不到unionid情况)
2025年7月20日 08:00
















