Ajax内容签名技术(减少无谓流量损耗)
UI界面Ajax获取数据内容的时候,一般是直接加载内容填充,不管内容有无变化。自己也是一直这么干,包括定时刷新公告等。
今天在浏览器控制台调试的时候,发现动态刷新内容,其实挺耗费流量的,特别是内容无变化的时候,却一直要传输同样的内容,而部分刷新,加载的是大量的内容。这样就造成了流量的无谓浪费,而且刷新的时候,dom容器也会闪烁一下,用户体验很不好。
所以今天突然想到一个方法,就是把传输内容格式改造一下,返回json格式,格式为:{"value":"","sign":""},value对应的是原来的内容,sign是内容的MD5签名。
ajax获取数据后,把内容的sign值和dom元素的[data-sign]比对:
1.如果是第一次获取,则此时dom元素的[data-sign]为空,所以应该把内容的sign值写入到dom元素的[data-sign]中,并且应用value值。
2.如果不是第一次获取,则把dom元素的[data-sign]作为请求参数,发送给服务端后台,服务端后台根据传入的sign参数的值与内容生成的md5值比对,如果内容签名值与参数sign值不一致,则说明内容有变化,输出内容为:{"value":"内容","sign": $md5_sign},前端则重复第一步操作。如果内容签名值与参数sign值一样,则说明内容没有变化,这时就没必要返回内容值了,输出内容为:{"value":"","sign":$md5_sign},从而节省了无谓的流量消耗。
这个方法,命名为:Su-AjaxContent-Sign (SACS) Ajax内容签名。
Ajax内容签名技术(减少无谓流量损耗)的更多相关文章
- 使用Ajax内容签名,减少流量浪费
前端UI界面用Ajax获取数据内容的时候,一般是直接获取内容数据并填充,不管内容有无变化,不管数据量多大,都是直接重新加载数据,例如定时刷新公告等. 今天在浏览器控制台调试的时候,发现动态刷新内容,其 ...
- Ajax原理,技术封装与完整示例代码
在做项目和学习的时候,经常用到Ajax的相关技术,但是这方面的技术总是运用的不是十分好,就寻找相关博客来学习加深Ajax技术相关. 一.Ajax简介 二.同步.异步传输区别 2.1 异步传输 2.2 ...
- 如何让搜索引擎抓取AJAX内容? 转
越来越多的网站,开始采用"单页面结构"(Single-page application). 整个网站只有一张网页,采用 Ajax 技术,根据用户的输入,加载不同的内容. 这种做法的 ...
- 如何让搜索引擎抓取AJAX内容?
越来越多的网站,开始采用"单页面结构"(Single-page application). 整个网站只有一张网页,采用Ajax技术,根据用户的输入,加载不同的内容. 这种做法的好处 ...
- 基于http的追加协议、构建web内容的技术、web的攻击技术(9,10,11)
第九章 基于http的追加协议 用来提升http的瓶颈,比如Ajax技术,spdy等 第十章 构建web内容的技术 html.css.js等 第十一章 web的攻击技术 比如sql注入攻击.xss等.
- 爬虫实战【6】Ajax内容解析-今日头条图集
Ajax技术 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). Ajax并不是新的编程语言,而是一种使用现有标准的新方法,当然 ...
- 2018-06-25 js表单事件、三个高度和Ajax异步通讯技术
表单事件: onfocus -> 表单控件得到焦点时触发: obj_ipt.onfocus=function(){}; onblur -> 表单控件失去焦点时: onchange -> ...
- Atitit 发帖机实现(3 )---usrQBN023 js提交ajax内容到后端规范与标准化
Atitit 发帖机实现(3 )---usrQBN023 js提交ajax内容到后端规范与标准化 大段内容务必要替换转义换行符号1 提交务必使用utf编码,否则解码后的可能缺失,是web serv ...
- 【学习笔记】AJAX内容拓展
题记——近期回顾<javaScript高级程序设计>ajax章节,发现书中对封装一个ajax库并不完美,结合之前看到博客,对ajax库做一点点的优化. 参考博客:如何去封装一个ajax库 ...
随机推荐
- Linux+Apache下如何安装SSL证书
最近很多站长在问linux系统平台下如何安装SSL证书?Linux+Apache下如何安装SSL证书?本文整理了关于Linux+Apache下如何安装SSL证书的相关教程供大家参考,更多SSL证书安装 ...
- JQuery的click,trigger触发a标签的click事件无效的问题分析
今天在做一个手机端webAPP链接下载的时候,给a标签一个下载链接,但是通过 <a id="downFile" download="" href=&quo ...
- DataInputStream 数据类型数据输入输出流
package IOliu; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileI ...
- Q&A to prepare interview of HSBC
1.How do you keep updating lastest IT knowledge? 1).keep an eye on current project technology evetho ...
- Spring 属性输入和实例化操作_总结
Spring 之 applicationContext.xml 配置 默认实例化(无参构造) //被实例化对象 package cn.ibbidream.Bean; public class Bea ...
- RubyMine快捷键
RubyMine快捷键 ctrl+shift+up/down 向上/向下移动代码段 alt+shift+up/down 向上/向下移动代码行 ctrl+y 删除一行 ctrl+shift+f10 运行 ...
- Linux控制台版本号2048
在Github上看到一个荷兰人写的linux控制台版的2048,用的C语言.感觉非常有意思. 原网址在这里. 读了一下他的源代码,感觉写的不错.就厚着脸皮加了一些中文凝视,源代码例如以下: /* == ...
- Java异常的处理机制(二)
1.throw的作用 class Usre { private int age; public void setAge (int age) { if(age < 0) { RuntimeExce ...
- hdu4861 Couple doubi---2014 Multi-University Training Contest 1
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4861 Couple doubi Time Limit: 2000/1000 MS (Java/Othe ...
- [WPF]c#调用默认浏览器打开网址
//调用系统默认的浏览器 System.Diagnostics.Process.Start("http://www.zhaokeli.com");