JavaScript
qq_36631168
这个作者很懒,什么都没留下…
展开
-
JS-判断IE浏览器--if(!-[1,])
这是一个判断IE浏览器版本的精简脚本 IE浏览器不管是什么版本,总是跟Web标准有些不太兼容。对于代码工作者来说,自然是苦不堪言,为了考虑IE的兼容问题,不管是写 CSS 还是 JS,往往都要对 IE 特别对待,这就少不了做些判断。本文不讨论如何区分 IE 的样式,仅是 JS 判定 IE 浏览器。 这个目前世界上最短的 Javascript 判定 IE 浏览器的方法来自俄罗斯!它转载 2016-11-19 17:00:24 · 484 阅读 · 0 评论 -
闭包
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。闭包的特性闭包有三个特性:1.函数嵌套函数2.函数内部可以引用外部的参数和变量3.参数和变量不会被垃圾回收机制回收闭包的定义及其优缺点闭包 是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问转载 2016-11-11 19:17:55 · 215 阅读 · 0 评论 -
JS-无阻塞加载
将脚本放在底部。还是放在head中,用以保证在js加载前,能加载出正常显示的页面。标签放在前。成组脚本:由于每个标签下载时阻塞页面解析过程,所以限制页面的总数也可以改善性能。适用于内联脚本和外部脚本。非阻塞脚本:等页面完成加载后,再加载js代码。也就是,在window.onload事件发出后开始下载代码。 (1)defer属性:支持IE4和fierfox3.5更高版本浏览器 (转载 2016-11-11 19:00:41 · 273 阅读 · 0 评论 -
css阻塞与js阻塞
js的阻塞特性:所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等。直到JS下载、解析、执行完毕后才开始继续并行下载其他资源并呈现内容。为了提高用户体验,新一代浏览器都支持并行下载JS,但是JS下载仍然会阻塞其它资源的下载(例如.图片,css文件等)。由于浏览器为了防止出现JS修改DOM树,需要重新构建DOM树的情况,所以就会阻塞其他的下载和呈现。嵌转载 2016-11-11 18:43:31 · 3465 阅读 · 0 评论 -
GET和POST的区别
GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符 POST:一般用于修改服务器上的资源,对所发送的信息没有限制。 GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值, 也就是说Get是通过地址栏来传值,而Post是通过提交表单来传值。然而,在以下转载 2016-11-11 18:39:51 · 252 阅读 · 0 评论 -
JS-use strict
ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。设立"严格模式"的目的,主要有以下几个:- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;- 消除代码运行的一些不安全之处,保证代码运行的安全;- 提高编译器效率,增加运行速度;- 为未来新版本的Javas转载 2016-11-11 18:36:51 · 320 阅读 · 0 评论 -
JS-同源限制
我们举例说明:比如一个黑客程序,他利用Iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。转载 2016-11-11 18:34:28 · 294 阅读 · 0 评论 -
JS-同源策略
概念:同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准。它最早出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载。这里的同源策略指的是:协议,域名,端口相同,同源策略是一种安全协议。 指一段脚本只能读取来自同一来源的窗口和文档的属性。转载 2016-11-11 18:32:24 · 280 阅读 · 0 评论 -
Flash、Ajax的取舍
1、Flash ajax对比Flash适合处理多媒体、矢量图形、访问机器;对CSS、处理文本上不足,不容易被搜索。Ajax对CSS、文本支持很好,支持搜索;多媒体、矢量图形、机器访问不足。共同点:与服务器的无刷新传递消息、用户离线和在线状态、操作DOM转载 2016-11-11 18:29:14 · 290 阅读 · 0 评论 -
grunt, YUI compressor 和 google clojure进行代码压缩的用法
YUI Compressor 是一个用来压缩 JS 和 CSS 文件的工具,采用Java开发。使用方法://压缩JSjava -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -v src.js > packed.js//压缩CSSjava -jar yuicompressor-2.4.2.jar --type css --转载 2016-11-11 18:27:02 · 346 阅读 · 0 评论 -
JS-事件处理程序
事件处理程序在DOM中定义了一些事件, 而响应某个事件的函数就叫事件处理程序(或事件侦听器)。事件处理程序的名字一般以“on”开头,例如:onclick等事件冒泡与捕获事件流指的是页面中接收事件的顺序,IE,火狐和chrome浏览器都是事件冒泡,所谓是事件冒泡指的是事件最开始由最具体的元素接收,然后逐级向上传播到不具体的节点。而事件捕获则正好相反,事件捕获是由Netscap转载 2016-11-11 19:25:28 · 824 阅读 · 0 评论 -
JS-eval
它的功能是把对应的字符串解析成JS代码并运行;应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。转载 2016-11-11 21:06:42 · 244 阅读 · 0 评论 -
Cookie的弊端
cookie虽然在持久保存客户端数据提供了方便,分担了服务器存储的负担,但还是有很多局限性的。 第一:每个特定的域名下最多生成20个cookie1.IE6或更低版本最多20个cookie2.IE7和之后的版本最后可以有50个cookie。3.Firefox最多50个cookie4.chrome和Safari没有做硬性限制IE和Opera 会清理近期最少使用的cookie,Fir转载 2016-11-11 22:23:03 · 291 阅读 · 0 评论 -
JS操作-获取和设置cookie
//创建cookiefunction setCookie(name, value, expires, path, domain, secure) { var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value); if (expires instanceof Date) {转载 2016-11-11 22:14:45 · 372 阅读 · 0 评论 -
JS-获取UA
function whatBrowser() { document.Browser.Name.value=navigator.appName; document.Browser.Version.value=navigator.appVersion; document.Browser.Code.value=navigator.appCode转载 2016-11-11 21:59:31 · 635 阅读 · 0 评论 -
JS-数组去重
Array.prototype.unique1 = function () { var n = []; //一个新的临时数组 for (var i = 0; i < this.length; i++) //遍历当前数组 { //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n.indexOf(this[i])转载 2016-11-11 22:01:08 · 203 阅读 · 0 评论 -
网站重构
网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。也就是说是在不改变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。对于传统的网站来说重构通常是:表格(table)布局改为DIV+CSS使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)对于移动平台的优化针对于SEO进行优化深层次的网站重构应该考虑的方面减少代转载 2016-11-11 21:51:25 · 481 阅读 · 0 评论 -
JS-ajax
1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3. Ajax在客户端运行,承担了一部分本来由服务器承担的工作,减少了大用户量下的服务器负载。 2. Ajax的最大的特点是什么。 Ajax可以实现动态不刷新(局部刷新) readyState属性 状态 有5个可取值: 0=未初始化 ,1=启动 2=发送,3=转载 2016-11-11 21:43:16 · 238 阅读 · 0 评论 -
事件处理机制
事件:1. 我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被 JavaScript 侦测到的行为。区别IE与火狐的事件机制:IE是事件冒泡、firefox同时支持两种事件模型,也就是:捕获型事件和冒泡型事件。阻止冒泡: ev.stopPropagation();注意旧ie的方法 ev.cancelBubble = true;转载 2016-11-11 21:19:06 · 284 阅读 · 0 评论 -
JS-原型、原型链
* 原型对象也是普通的对象,是对象一个自带隐式的 __proto__ 属性,原型也有可能有自己的原型,如果一个原型对象的原型不为null的话,我们就称之为原型链。* 原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链。转载 2016-11-11 21:11:20 · 209 阅读 · 0 评论 -
Node.js的适用场景
高并发、聊天、实时消息推送转载 2016-11-11 21:08:44 · 644 阅读 · 0 评论 -
JS-实现继承及避免原型链的对象共享
用构造函数和原型链的混合模式去实现继承,避免对象共享可以参考经典的extend()函数,很多前端框架都有封装的,就是用一个空函数当做中间变量转载 2016-11-11 15:52:49 · 1223 阅读 · 0 评论 -
前端安全问题
(XSS,sql注入,CSRF)CSRF:是跨站请求伪造,很明显根据刚刚的解释,他的核心也就是请求伪造,通过伪造身份提交POST和GET请求来进行跨域的攻击。**完成CSRF需要两个步骤:**1.登陆受信任的网站A,在本地生成COOKIE2.在不登出A的情况下,或者本地COOKIE没有过期的情况下,访问危险网站B。转载 2016-11-11 15:44:47 · 286 阅读 · 0 评论 -
区别call() 和 .apply()
作用:动态改变某个类的某个方法的运行环境。apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。如果上下文是null,则使用全局对象代替。例如:function.apply(this,[1,2,3])call()的第一个参数是上下文,后续是实例传入的参数序列,例如:function.call(this,1,2,3);转载 2016-11-11 12:05:05 · 171 阅读 · 0 评论 -
区别documen.write和 innerHTML
document.write只能重绘整个页面innerHTML可以重绘页面的一部分转载 2016-11-11 12:02:49 · 509 阅读 · 0 评论 -
解决跨域问题
jsonp、 document.domain+iframe、window.name、window.postMessage、服务器上设置代理页面jsonp的原理是动态插入script标签转载 2016-11-11 11:59:27 · 152 阅读 · 0 评论 -
js延迟加载方式
defer和async、动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack)、按需异步载入js转载 2016-11-11 11:57:58 · 280 阅读 · 0 评论 -
new操作符
1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。 2、属性和方法被加入到 this 引用的对象中。 3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。转载 2016-11-11 11:53:24 · 209 阅读 · 0 评论 -
了解JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小{'age':'12', 'name':'back'}转载 2016-11-11 11:55:43 · 182 阅读 · 0 评论 -
区别null和undefined
null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。当声明的变量还未被初始化时,变量的默认值为undefined。 null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:(1)变量被声明了,但没有赋值时,就等于unde转载 2016-11-11 11:47:35 · 153 阅读 · 0 评论 -
测试代码性能的工具
Profiler, JSPerf(http://jsperf.com/nexttick-vs-setzerotimeout-vs-settimeout), Dromaeo转载 2016-11-11 09:51:34 · 1011 阅读 · 0 评论 -
JS-DOM操作
(1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点(2)添加、移除、替换、插入 appendChild() removeChild() repla转载 2016-11-10 13:36:23 · 173 阅读 · 0 评论 -
会造成内存泄漏的操作
内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)转载 2016-11-11 12:10:16 · 472 阅读 · 0 评论 -
JS-作用域与变量声明提升
函数的提升(hoisting)函数声明的行为并不等同于命名函数表达式,其区别在于提升(hoisting)行为,看下面例子:script type="text/javascript"> //全局函数 function foo(){alert("global foo!");} function bar(){alert('global bar');}转载 2016-11-11 12:23:08 · 626 阅读 · 0 评论 -
异步加载和延迟加载
1.异步加载的方案: 动态插入script标签2.通过ajax去获取js代码,然后通过eval执行3.script标签上添加defer或者async属性4.创建并插入iframe,让它异步执行js5.延迟加载:有些 js 代码并不是页面初始化的时候就立刻需要的,而稍后的某些情况才需要的。转载 2016-11-11 15:41:21 · 530 阅读 · 0 评论 -
ajax过程
(1)创建XMLHttpRequest对象,也就是创建一个异步调用对象.(2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.(3)设置响应HTTP请求状态变化的函数.(4)发送HTTP请求.(5)获取异步调用返回的数据.(6)使用JavaScript和DOM实现局部刷新.转载 2016-11-11 15:38:46 · 337 阅读 · 0 评论 -
javascript继承方法
1,原型链继承2,借用构造函数继承3,组合继承(原型+借用构造)4,原型式继承5,寄生式继承6,寄生组合式继承转载 2016-11-11 15:35:17 · 201 阅读 · 0 评论 -
javascript对象创建方式
1,工厂模式2,构造函数模式3,原型模式4,混合构造函数和原型模式5,动态原型模式6,寄生构造函数模式7,稳妥构造函数模式转载 2016-11-11 15:33:32 · 186 阅读 · 0 评论 -
最近最流行的东西和常去的网站
Node.js、Mongodb、npm、MVVM、MEAN、three.js,React 。网站:w3cfuns,sf,hacknews,CSDN,慕课,博客园,InfoQ,w3cplus等转载 2016-11-11 15:30:54 · 344 阅读 · 0 评论 -
项目管理
先期团队必须确定好全局样式(globe.css),编码模式(utf-8) 等; 编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行); 标注样式编写人,各模块都及时标注(标注关键样式调用的地方); 页面进行标注(例如 页面 模块 开始和结束); CSS跟HTML 分文件夹并行存放,命名都得统一(例如style.css转载 2016-11-11 15:24:27 · 234 阅读 · 0 评论