只看精华贴
  • Web讲师-赵老师
    2019/06/29 17:01
    Web讲师-赵老师发布了主贴【web前端】正则表达式的用途【教程贴】
    (1)检查一个串是否含有某种子串(2)将匹配的子串做替换或者从某个串中取出符合某个条件的子串正则表达式的组成: 普通字符(如字符a到z),以及特殊字符(称为元字符)组成的文字模式。普通字符:包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。非打印字符:\cx:匹配由x指明的控制字符\f:匹配一个换页符,等价于\x0c和\cL\n:匹配一个换行符\r:匹配一个回车符\s:匹配任何空白字符,包括空格、制表符、换页符等\S:匹配任何非空白字符\t:匹配一个制表符\w:匹配一个垂直制表符特殊字符:特殊字符是一些有特殊含义的字符,元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符“转义”,即将反斜杠(\)放在它们前面。$:匹配输入字符串的结尾位置。如果设置了RegExp对象的Multiline属性,则$也匹配\n或\r,匹配$本身,使用\$():标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用\(和\)*:匹配前面的子表达式零次或多次。+:匹配前面的子表达式一次或多次. :匹配换行符\n之外的任何单字符[:标记中括号表达式的开始。?:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。\:将下一个字符标记为特殊字符,或原义字符,或向后引用,或八进制转义符,例如‘n’匹配字符“n”,‘\n’匹配换行符,序列“\\”匹配“\”,而'\('匹配"("^:匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配字符本身,用\^{:标记限定符表达式的开始|:指明两项之间的一个选择限定符限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*,+,?,{n},{n,},{n,m}共6种*:匹配前面的子表达式零次或多次。例如:zo*能匹配“z”以及“zoo”,*等价于{0,}+:匹配前面的子表达式一次或多次。例如:zo*能匹配“zoo”以及“zo”,但不能匹配"z",+等价于{1,}?:匹配前面的子表达式零次或一次。例如:do(es)?可以匹配“do”或“does”。?等价于{0,1}{n}:n是一个非负整数,匹配确定的n次。比如,“o{2}”不能匹配“bod”中的o,但能匹配“food”中的o{n,},n非负整数,至少匹配n次{n,m},其中n<=m,至少匹配n次最多匹配m次例如chaper1,chaper2,...chaper100等的匹配/chaper[1-9][0-9]*/注:*,+,?都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。例子:<h1>chaper 1-introduce to regular expressions</h1>下面的表达式匹配从开始小于符号(<)到关闭h1标记的大于符号(>)之间的所有内容/<.*>/如果只需要匹配开始h1标记,下面的“非贪心”表达式只匹配<h1>/<.*?>/通过在*,+,?限定符之后放置?,该表达式从贪心表达式转换为非贪心表达式或最小匹配。定位符定位符能够将正则表达式固定到行首或行尾。^:匹配输入字符串开始的位置。如果设置了RegExp对象的Multiline属性,^还会与\n或\r之后的位置匹配。$:匹配输入字符串结尾的位置。如果设置了RegExp对象的Multiline属性,$还会与\n或\r之前的位置匹配。\b:匹配一个字边界,即字与空格间的位置。\B:非字边界匹配注:不能将限定符与定位点一起使用。由于在紧靠换行或者字边界的前面或后面不能有一个以上位置,因此不允许诸如^*之类的表达式。若要匹配一行文本开始处的文本,请在正则表达式的开始使用^字符,不要将^的这种用法与中括号表达式内的用法混淆。若要匹配一行文本的结束处的文本,请在正则表达式的结束处使用$字符。若要在搜索章节标题时使用定位点,下面的正则表达式匹配一个章节标题,改标题只包含两个尾随数字,并且出现在行首/^chaper [1-9][0-9]{0,1}/真正的章节标题不仅出现行的开始处,而且它还是该行中仅有的文本,通过创建只匹配一行文本的开始和结尾的正则表达式,就可做到这一点。/^chaper [1-9][0-9]{0,1}$/选择用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。单用圆括号会有一个副作用,是相关的匹配会被缓存。此时可用?:放在第一个选项前来消除这种副作用。还有两个非捕获源是?=和?!,前者为正向预查,后者为反向预查。反向引用对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个字匹配都按照在正则表达式模式中从左到右出现的顺序存储。缓冲区编号从1开始,最多可存储99个捕获的子表达式。每个缓冲区都可以使用'\n'访问,其中n为一个标识特定缓冲区的一位或两位十进制数。可以用非捕获元素'?:','?='或'?!'来重写捕获,忽略对相关匹配的保存。方向引用最简单的应用,查找文本中两个相同的相邻单词的匹配项。Is is the cost of of gasoline going up up?上面的句子明显有多个重复的单词。/\b([a-z]+) \1\b/gi捕获的正则表达式,[a-z]+指定的,包括一个或多个字母。正则表达式的第二部分是对以前捕获的子匹配项的引用,即,单词的第二个匹配项正好有括号表达式匹配。\1指定第一个子匹配项。字边界元字符确保只检测整个单词。反向引用还可以将通用资源指示符(uri)分解为其组件。假定一个uri分解为协议、域地址和页、路径http://www.runoob.com:80/html/html-tutorial.html下面的正则表达式提供该功能:/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/第一个括号子表达式匹配在冒号和两个正斜杠前面的任何单词。http第二个括号子表达式捕获地址的域地址部分。匹配/和:之外的一个或多个字符。第三个括号子表达式捕获端口号端口号。匹配冒号后面的零个或多个数字。只能重复一次该子表达式。:80第四个括号捕获web地址指定的路径。匹配不包括#或空格字符的任何字符序列。 
    查看详情>
  • Web讲师-赵老师
    2019/05/31 17:24
    小程序的生命周期 App.js 1、用户首次打开小程序,会触发onLauch(全局只触发一次);2、小程序初始化完成后,触发onShow方法,监听小程序显示;3、小程序从前台进入后台,触发onHide方法;4、小程序从后台进入前台显示,触发onShow方法;5、小程序后台运行一定时间,或系统资源占用过高,会被销毁;  页面生命周期 1、小程序注册完成后,加载页面,触发onLoad方法,一个页面只会调用一次;2、页面载入后触发onShow方法,显示页面,每次打开页面都会调用一次;3、首次显示页面,会触发onReady方法,渲染页面和样式,一个页面只会调用一次;4、当小程序后台运行或跳转到其他页面时,触发onHide方法;5、当小程序从后台进入前台运行或重新载入页面时,触发onShow方法;6、当使用wx.readirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload
    查看详情>
  • Web讲师-赵老师
    2019/04/29 17:07
    Web讲师-赵老师发布了主贴【WEB前端】前端MVVM介绍【教程贴】
           Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。       如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维,因为Vue.js是数据驱动的,你无需手动操作DOM。它通过一些特殊的HTML语法,将DOM和数据绑定起来。一旦你创建了绑定,DOM将和数据保持同步,每当变更了数据,DOM也会相应地更新。 MVVM模式ViewModel是Vue.js的核心,它是一个Vue实例。Vue实例是作用于某一个HTML元素上的,这个元素可以是HTML的body元素,也可以是指定了id的某个元素。 当创建了ViewModel后,双向绑定是如何达成的呢?        首先,我们将上图中的DOM Listeners和Data Bindings看作两个工具,它们是实现双向绑定的关键。       从View侧看,ViewModel中的DOM Listeners工具会帮我们监测页面上DOM元素的变化,如果有变化,则更改Model中的数据;       从Model侧看,当我们更新Model中的数据时,Data Bindings工具会帮我们更新页面中的DOM元素。  [/图片]                
    查看详情>
  • Web讲师-赵老师
    2019/03/31 17:20
    Web讲师-赵老师发布了主贴[web前端] Css3中的图形图像变幻 [教程贴]
    animation的六大属性 animation-name规定需要绑定选择器的keyframe名称 animation-duration规定完成动画所花费的时间 s msobject.style.animationDuration="3s" animation-timing-function动画的速度曲线默认值easeobject.style.animationTimingFunction="linear"语法 animation-timing-function:value animation-timing-function使用名为三次Cubic Bezier贝塞尔曲线函数的数学函数,来生成速度曲线 可以使用自己的值也可以预定义的值 值:linear从始到末以相同的速度ease 默认 从低速 加快在结束前变慢ease-in动画低速开始ease-out动画低速结束ease-in-out动画从低速开始和结束cubic-bezier(n,n,n,n)在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值  animation-deplay动画开始之前的延迟animation-delay: time;JavaScript 语法:object.style.animationDelay="2s"animation-delay 值以秒或毫秒计。允许负值,-2s 使动画马上开始,但跳过 2 秒进入动画   animation-iteration-count动画播放的次数 IE10animation-iteration-count: n|infiniteJavaScript 语法: object.style.animationIterationCount=3 animation-direction是否应该轮流反向播放动画animation-direction 值是 "alternate",则动画会在奇数次数(1、3、5 等等)正常播放,而在偶数次数(2、4、6 等等)向后播放animation-direction: normal|alternate;JavaScript 语法: object.style.animationDirection="alternate"  默认值 none 0 ease 0 1 normaljavascript的语法 object.style.animation="mymove 5s infinite"  Transition   过渡的四大属性 IE10 transition-propertytransiont-property属性规定过渡css属性的名称transition-property: none|all|propertyCSS 属性名称列表,列表以逗号分隔;JavaScript 语法: object.style.transitionProperty="width,height"  transition-duration 完成过渡效果需要多少秒或毫秒transition-duration: time;JavaScript 语法: object.style.transitionDuration="5s" transition-timing-function: linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n);JavaScript 语法: object.style.transitionTimingFunction="linear"  transition-delayJavaScript 语法: object.style.transitionDelay="2s"transition-delay: time; 默认值 all 0 ease 0transition:property duration timing-function delayjavascript语法:object.style.transition="width 2s"  transform IE10transform 允许我们对元素进行旋转、缩放、移动、或倾斜默认nonejavascript的语法 object.style.transform="rotate(7deg)"transform: none|transform-functions; none 不进行转换matrix(n,n,n,n,n,n)使用六个值的矩阵matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)使用 16 个值的 4x4 矩阵translate(x,y)2D 转换translate3d(x,y,z)3D 转换translateX(x)只是用 X 轴的值translateY(y)只是用Y轴的值translateZ(z)只是用Z轴的值scale(x,y)2D缩放scale3d(x,y,z)3D缩放scaleX(x),scaleY(y),scaleZ(z)rotate(angle) 2D 旋转,在参数中规定角度rotate3d(x,y,z,angle)3D 旋转rotateX(angle),rotateY(angle),rotateZ(angle)skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜
    查看详情>
  • Web讲师-赵老师
    2019/02/28 16:44
    <!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title>    <script>    <!--获取像素比:window.devicePixelRatio    1 / 像素 = 缩放的比例-->   var initScale = 1 / window.devicePixelRatio;      document.write('<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale='+ initScale +',minimum-scale='+ initScale +',maximum-scale='+ initScale +'">');   var initWidth = window.document.documentElement.clientWidth; document.getElementsByTagName('html')[0].style.fontSize = initWidth / 50 + 'px';    </script>    <style>        body{            margin: 0;            overflow: hidden;        }        .box{            width: 10rem;            height: 10rem;            margin: 0.33333rem;            background: pink;            float: left;            font-size: 30px;        }    </style></head><body>    <div>box1</div>    <div>box2</div>    <div>box3</div>    <div>box4</div>    <div>box5</div>    <div>box6</div></body></html>
    查看详情>
  • Web讲师-赵老师
    2019/01/11 15:46
    一 . 节点属性DOM 是树型结构,相应的,可以通过一些节点属性来遍历节点树:nodeName节点名称,相当于tagName.属性节点返回属性名,文本节点返回#text。nodeName,是只读的。nodeType节点的类型,返回值:1,元素节点;2,属性节点;3,文本节点。nodeType 是只读的。nodeValue节点的值,返回一个字符串,指示这个节点的值。元素节点返回 null,属性节点返回属性值,文本节点返回文本。nodeValue 可读可写,这是对元素节点不能写。一般只用于设置文本节点的值。childNodes返回子节点数组。文本和属性节点的 childNodes 永远是 null。可以用 hasChildNodes 来判断是否有子节点。只读属性。firstChild返回第一个子节点。文本和属性节点没有子节点,会返回一个空数组。对于元素节点,若是没有子节点会返回 null。有一个等价式:firstChild   = childNodes[0]。lastChild返回最后一个子节点。返回值同 firstChild,,三方待遇参考上面。有一个等价式:lastChide = childNodes[childNodes.length - 1]。nextSibling返回节点的下一个兄弟节点。如果没有下一个兄弟节点的话,返回 null。只读属性。previousSibling返回节点的上一个兄弟节点。同上。二. 节点方法还记得下面这些我们用过的方法么,他们都是 DOM 的方法:方法说明write()写入内容到文档getElementById()返回带有指定 ID 的元素getElementsByTagName()返回带有指定标签名的所有元素getElementsByClassName()返回包含指定类名的所有元素的一个列表get/setAttribute('key', 'value')返回或设置属性节点。createElement('tagName')创建节点。createTextNode('text');创建文本节点。appendChild(o)在父节点末尾附加子节点   ,其中 o 为节点对象。createDocumentFragment()创建文档片断。removeChild(oP)删除节点。replaceChild(newOp, targetOp)替换节点。insertBefore(newOp, targetOp)已有的子节点前插入一个新的子节点。insertAfter(newOp, targetOp)已有的子节点之后插入一个新的子节点。
    查看详情>
  • Web讲师-赵老师
    2018/12/28 17:05
    Web讲师-赵老师发布了主贴【web网站】---如何理解prototype【教程贴】
          原型对象:构造函数的prototype属性:随着实例化的次数增加,不同的对象他们拥有的say方法指向不同的内存,功能相同,造成了内存的浪费,为了解决内存,将这个方法放在某个对象(原型对象)中.  结论1:给构造函数的prototype属性(对象)添加一个方法,这个方法就可以被构造函数的实例所共享    推论1:构造函数的prototype属性(对象)上面的属性、方法都可以被构造函数的实例所共享    推论2:Student.prototype.constructor===s1.constructor   结论2:构造函数的实例有一个__proto__指向的是构造函数的prototype属性(原型对象) s1.__proto__===Student.prototype  总结:    a. 原型对象是构造函数的prototype属性    b. 构造函数的实例的__proto__属性指向原型对象    c. 原型对象有一个constructor属性指向构造函数本身  [/图片] 
    查看详情>
  • Web讲师-赵老师
    2018/11/30 16:59
    一一比对,看看你的js基础部分漏了没;1. 语言构成:     (1). 基础语法(ECMAScript=ES 1,2,3,3.1,5(IE9+),6:ES2015)/     (2). BOM:Brower Object Model 浏览器对象模型     (3). DOM(W3C):Document Object Model 文档对象模型2. 变量2.1. 变量声明    变量的声明:(var关键字) 会提升到当前作用域的顶部2.2. 变量作用域     JS作用域:全局作用域、局部作用域(写一个函数就产生了一个局部作用域)3. 数据类型3.1. 数据类型的分类     javaScritp的数据类型有:数值类型、字符串类型、布尔类型、null、undefined、对象(数组、正则表达式、日期、函数)     其中:    (1). 基本数据类型:数值、字符串、布尔、null、undefined (值类型)   (2). 复杂(复合)数据类型:对象 (引用类型)  typeof 可以检测的数据类型有:  使用typeof可以检测数值、字符串、布尔、undefined、函数  无法检测函数以外的对象类型,以及null3.2. 数据类型的转换:  Number("12ab"); //NaN  parseInt("12.1ab"); //12  parseFloat("12.1ab"); // 12.14. 运算符4.1. 算术运算符:  +、  -、  *、  /、  %(求余、取模)4.2. 逻辑运算符:  &&、  ||、  !  注意:  &&:看运算符左边的数是否为真值,如果为真值,返回右边,如果为假值,返回左边  ||:看运算符左边的数是否为真值,如果为真值,返回左边,如果为假值,返回右边4.3. 真假值    假值:空字符串""/数字0/null/undefined/false/NaN5. 语句    循环语句:for while do...while for...in 
    查看详情>
  • Web讲师-赵老师
    2018/10/31 13:48
    Array对象:属性:.length      获得数组的长度;方法:.concat() 连接内容或者数组,组成新的数组;.join(n)  用n连接数组的每一项组成字符串,可以是空字符串;.pop() 删除数组的最后一项数据,并返回删除的数据;.push()  在数组最后加入新的内容返回新的数组的长度.reverse() 翻转数组; String对象属性:.length  获取字符串的长度。方法:.charAt(n)  找到位置在n(索引)上的字符。.charCodeAt(n)  找到索引位置上的字符的编码:a=97,A=65。.indexOf(“m”) 查找字符m在字符串中第一次出现的索引;如果没有找到返回-1。.lastIndexOf(“m”)  查找字符m在字符串中最后一次出现的索引;如果没有找到返回-。.split(“n”)  以字符n分割字符串,并返回一个数组,空字符串时分割每个字符,如果字符串中没有该字符,同样返回数组。.substr(n,m)   截取字符串,从索引是n的位置开始截取,截取m个字符;如果只有一个参数n,那就是从n开始截取,截取到最后。.substring(n,m)  截取字符串,从索引是n的位置开始截取,截取到第m个字符(m娶不到);如果只有一个参数n,那就是从n开始截取,截取到最后。.toLowerCase()   把字符串中的字母转化成小写。.toUpperCase()   把字符串中的字母转化成大写。 Math对象方法:Math.pow(n,m)   n的m次方。Math.abs(n)    n到原点的距离(n的绝对值)。Math.round(n)   四舍五入取整。Math.floor(n)   地板函数(向下取整)。Math.ceil(n)    天花板函数 (向上取整)。Math.random()     返回0-1的随机数(取不到1)。注意:[n,m] 随机数为了能取到n,m                Math.floor(Math.random())*(m-n+1)+n)。特殊字符\r  回车\n  换行 Date对象    var date = new Date();方法:.toLocaleString()   以当前本地格式显示时间。date.getFullYear()   获取date对象的年份。date.getMonth()   获取月份(0-11)对应1-12月。date.getDate()   获取日期。date.getHours() 获取小时。date.getMinutes() 获取分钟date.getSeconds() 获取多少秒date.getMilliSeconds() 毫秒数date.getDay()  获取星期几(0-6) 对应 周天至周六。date.getTime()   从1970年开始到时间日期的毫秒值(时间戳)date.setFullYear   设置年份   
    查看详情>
  • Web讲师-赵老师
    2018/09/15 21:54
    Web讲师-赵老师发布了主贴【web网站】---NPM命令 【教程贴】
    npm init 在项目中引导创建一个package.json文件    安装包的信息可保持到项目的package.json文件中,以便后续的其它的项目开发或者他人合作使用,也说package.json在项目中是必不可少的。[/图片]npm help 查看某条命令的详细帮助        例如输入npm help install,系统在默认的浏览器或者默认的编辑器中打开本地nodejs安装包的文件/nodejs/node_modules/npm/html/doc/cli/npm-install.html[/图片]打开的帮助文件[/图片]npm cache 管理模块的缓存npm cache add <tarball file>npm cache add <folder>npm cache add <tarball url>npm cache add <name>@<version>npm start 启动模块基础语法npm start [-- <args>]该命令写在package.json文件scripts的start字段中,可以自定义命令来配置一个服务器环境和安装一系列的必要程序,如"scripts": {    "start": "gulp -ws"}此时在cmd中输入npm start命令相当于执行gulpfile.js文件自定义的watch和server命令。       如果package.json文件没有设置start,则将直接启动node server.jsnpm stop 停止模块基础语法npm stop [-- <args>] npm restart 重新启动模块
    查看详情>
  • Web讲师-赵老师
    2018/08/30 15:53
    1.首先搭建基本的html结构,由于我们使用了swipe.js这个框架,我们在写结构时也要按照其要求来写;[/图片] 注意:【1】最外层的div的id是自定义的,这个是需要传入到swipe中的 【2】最外层div的class="swipe"和第二层div的class="swipe-wrap"是写死的,swipe会查找这两个样式然后做相应的处理 【3】第三层的figure,就是我们要滑动元素的单元。 【4】之后我们的要滑动的内容,就是以figure为单位进行的  2.CSS基本样式根据自己需求可进行调整[/图片]【1】swipe、swipe-wrap、swipe-wrap > figure,这3个是swipe必须要使用到的,而且里面的样式最好也不要改动 【2】#slider是我自己设定的,用于整个空间居中 【3】figure样式也是自己设定的,但是是必须的,指定所有的figure对齐方式,而且只能设置为0,否则在滑动图片的时候会出现位置的错乱。(为什么会错乱swipe滑动宽度的像素是根据最外层div的宽度,如果figure的margin没有设置为0,而有间隔时,滑动的宽度就不会是一整张的figure了(figure之间存在空隙))  3. js 启动框架,以下是必备部分[/图片] 
    查看详情>
  • Web讲师-赵老师
    2018/07/31 14:20
    ajax 的全称是Asynchronous JavaScript and XML(异步的JavaScript 和 XML),其中,Asynchronous 是 异步 的意思,它有别于传统web开发中采用的同步的方式。ajax的优点Ajax的给我们带来的好处大家基本上都深有体会,在这里我只简单的讲几点:<1>.无刷新更新数据。  AJAX最大优点就是能在不刷新整个页面的前提下与服务器通信维护数据。这使得Web应用程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变的信息,减少用户等待时间,带来非常好的用户体验。<2>.异步与服务器通信。  AJAX使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。优化了Browser和Server之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。<3>.前端和后端负载平衡。  AJAX可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,AJAX的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。<4>.基于标准被广泛支持。  AJAX基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户允许JavaScript在浏览器上执行。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。<5>.界面与应用分离。  Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离),有利于分工合作、减少非技术人员对页面的修改造成的WEB应用程序错误、提高效率、也更加适用于现在的发布系统。ajax的优点Ajax的给我们带来的好处大家基本上都深有体会,在这里我只简单的讲几点:<1>.无刷新更新数据。  AJAX最大优点就是能在不刷新整个页面的前提下与服务器通信维护数据。这使得Web应用程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变的信息,减少用户等待时间,带来非常好的用户体验。<2>.异步与服务器通信。  AJAX使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。优化了Browser和Server之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。<3>.前端和后端负载平衡。  AJAX可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,AJAX的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。<4>.基于标准被广泛支持。  AJAX基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户允许JavaScript在浏览器上执行。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。<5>.界面与应用分离。  Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离),有利于分工合作、减少非技术人员对页面的修改造成的WEB应用程序错误、提高效率、也更加适用于现在的发布系统。
    查看详情>

关于Ta

  • 主贴 21
  • 回复 0
  • 课程 4
  • 关注 0
  • 粉丝 3

最近访客

  • 长春-谨守

    2019-09-07 11:54

  • 丶浅忆

    2019-06-14 22:47

  • 403358008

    2019-04-26 21:14

  • xswlpxDENGJIHUI

    2019-04-23 21:24

  • 1306284225

    2019-04-18 21:34

下载社区APP,查看更多访客

更多福利 在线客服 下载APP 意见反馈

扫描二维码下载APP

下载邢帅APP,缓存视频随身看

关注邢帅教育,领取更多福利

关注邢帅教育,领取更多福利