随笔分类 -  js

关于js
摘要:做移动web页面,受移动网络网速和终端性能影响,我们经常要关注首屏内容展示时间(以下简称首屏时间)这个指标,它衡量着我们的页面是否能在用户耐心消磨完之前展示出来,很大程度影响着用户的使用满意度。 怎么获取首屏时间呢? 我们经常要先问自己:页面是怎么加载数据? A:加载完静态资源后通过ajax请求去后 阅读全文
posted @ 2016-02-28 11:19 allexwang 阅读(319) 评论(0) 推荐(0)
摘要:今天看了不少文章,比较感兴趣的是 Cache API。它是浏览器 Request/Response 的缓存管理工具,其使用风格和运用场景让我瞬间联想到了 ServiceWorker 和 Fetch API,相信很多同学也多次看到过这两个东西,本文会对它们做一个简洁的介绍,并谈一谈我对这些新玩具的看法 阅读全文
posted @ 2016-02-28 11:00 allexwang 阅读(275) 评论(0) 推荐(0)
摘要:NodeJS 自 2009 年显露人间,到现在已经六个年头了,由于各种原因,中间派生出了个兄弟,叫做 iojs,最近兄弟继续合体,衍生出了 nodejs4.0 版本,这东西算是 nodejs new 1.0 版本,原班人马都统一到一个战线上。我没有太关注 nodejs 背后的开发,但一直是它的忠实使 阅读全文
posted @ 2016-02-28 10:59 allexwang 阅读(1239) 评论(0) 推荐(0)
摘要:在复杂的网络环境和浏览器环境下,自测、QA测试以及 Code Review 都是不够的,如果对页面稳定性和准确性要求较高,就必须有一套完善的代码异常监控体系,本文从前端代码异常监控的方法和问题着手,尽量全面地阐述错误日志收集各个阶段中可能遇到的阻碍和处理方案。 ☞ 收集日志的方法 平时收集日志的手段 阅读全文
posted @ 2016-02-28 10:58 allexwang 阅读(539) 评论(0) 推荐(0)
摘要:为了更好地了解用户对产品的使用情况,业务中,我们经常会收到埋点统计的需求,比如:我要说话 收集一段时间内用户光标在页面中的运动情况,包括光标移动、点击等行为 统计用户滚屏行为 统计用户在站点的停留时长 收集页面链接的点击数量等 无论是移动端还是 PC 端,相信很多朋友都遇到了这么几个十分让人头疼的 阅读全文
posted @ 2016-02-28 10:55 allexwang 阅读(1009) 评论(0) 推荐(0)
摘要:1.javascript的数组APIJs代码 收藏代码//定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.length; //shift... 阅读全文
posted @ 2015-05-28 22:24 allexwang 阅读(340) 评论(0) 推荐(0)
摘要:1 function replaceBodyClass(){ 2 for(var i in map){ 3 if(map[i](width)){ 4 document.body.className = document.body.className.rep... 阅读全文
posted @ 2015-05-27 06:50 allexwang 阅读(224) 评论(0) 推荐(0)
摘要:javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以有部分人以为不用写,让人比较模糊不清,在一般情况下,一个换行就会产生一个分号,但实际可能不是这样,也就是说在javascript中换行可能产生分号,也可能不产生,是否自动插入分号,主要看上下行。在 ECMAScript 中对分号自动插入规则也有相应的解释:空语句,变量语句,表达式语句,do-while 语句,continue 语句,break 语句,return 语句,以及 throw 语句,这些确定的ECMAScript语句必须以分号结束。这些分号可以总是明确地出现在源代码文本中。为方便起见,在特 阅读全文
posted @ 2013-05-07 07:14 allexwang 阅读(449) 评论(0) 推荐(0)
摘要:最近在做拖拽功能的时候,FF下遇到了几个问题,自己顺便整理了一下。问题: 在Firefox下以图片为句柄的拖拽无法触发onmouseup事件,在空的div中也无法触发onmouseup事件,同时在所有浏览器下选中文字后div的mouseup事件失效;整理了几个方法:1.onmousemove加在document上2.firefox : 如果被拖拽的对象里面没有任何内容,拖拽就会出现bug,我们只需要在down的最后加上一个return false3.ie : 选择文字拖拽会有bug :setCapture4.拖拽图片会有问题:return false;window.onload = fun.. 阅读全文
posted @ 2013-03-11 10:53 allexwang 阅读(333) 评论(0) 推荐(0)
摘要:上段时间,团队内部有过好几次给力的分享,这里对西风师傅分享的继承机制稍作整理一下,适当加了些口语化的描述,留作备案。一、讲个故事吧澄清在先,Java和Javascript是雷锋和雷峰塔的关系。Javascript原名Mocha,当时还叫做LiveScript,创造者是Brendan Eich,现任Mozilla公司首席技术官。1994年,历史上第一个比较成熟的网络浏览器——Navigator0.9版诞生在网景公司(Netscape),极为轰动。但是,Navigator0.9只能用来浏览,不具备与访问者交互的能力,比如,用户提交一个数据表单,如果表单为空,浏览器是无法判断的,只能直接提交给服务器 阅读全文
posted @ 2013-03-04 21:57 allexwang 阅读(232) 评论(0) 推荐(0)
摘要:在本文中,我会深入研究iOS和Android设备提供的触摸事件API,探索一下可以构建哪些类型的应用,给出一些最佳做法,并论及一些使得可触控应用(touch-enabled application)的开发变得更加容易的有用技术。针对多点触控浏览器进行的开发前言诸如智能手机和平板电脑一类的移动设备通常会有一个电容式触摸屏(capacitive touch-sensitive screen),以捕捉用户的手指所做的交互。随着移动网络的发展,其能够支持越来越复杂的应用,web开发者需要一种方法来处理这些事件。例如,几乎所有的快节奏游戏都需要玩家一次按下多个按钮,这种方式,在触摸屏情况下,意味着多点触 阅读全文
posted @ 2013-02-25 17:49 allexwang 阅读(991) 评论(0) 推荐(0)
摘要:1 var s=1;2 console.log(typeof s); //number3 s+="1";4 console.log(typeof s); //string5 console.log(s); //116 s++;7 console.log(typeof s); //number8 console.log(s); //12第三行,number和string相加得到的结果是string,这很容易理解。但是第六行,++操作符得到的结果是number类型。var ss = "1";ss++;console.log(ss);//2"1&qu 阅读全文
posted @ 2013-02-03 19:51 allexwang 阅读(165) 评论(0) 推荐(0)
摘要:JavaScript使用面向对象的技术创建高级 Web 应用程序本文来自:Ray Djajadinata本文讨论:JavaScript 是基于原型的语言用 JavaScript 进行面向对象的编程JavaScript 编码技巧JavaScript 的未来本文使用了以下技术:JavaScript目录JavaScript 对象是词典JavaScript 函数是最棒的构造函数而不是类原型静态属性和方法闭包模拟私有属性从类继承模拟命名空间应当这样编写 JavaScript 代码吗?展望最近,我面试了一个有五年 Web 应用程序开发经验的软件开发人员。四年半来她一直在从事 JavaScript 相关的工 阅读全文
posted @ 2013-01-22 08:08 allexwang 阅读(178) 评论(0) 推荐(0)
摘要:一个典型的插件的代码如下:(function($){ $.fn.myNewPlugin = function() { return this.each(function(){ // 一堆代码... }); };}(jQuery));那几行代码,没把你搞晕吧? 其实里面的重点就是扩展 jQuery 的 prototype 对象,看下面这行:$.fn.myNewPlugin = function() { //...这里只是将它放在一个即时执行的函数内部:(function($){ //...}(jQuery));这样做是为了营造一... 阅读全文
posted @ 2013-01-08 13:46 allexwang 阅读(424) 评论(0) 推荐(1)
摘要:在javascript中,对象实际上就是一个哈希表,比如下面这个user对象:function user(n, a){ this.name = n; this.age = a; this.toString = function() { return "Name:" + this.name + ", Age:" + this.age; }}var u = new user("tom", 18);for (var k in u) { alert('key: ' + k + ', value:' + u[k] 阅读全文
posted @ 2013-01-07 16:23 allexwang 阅读(555) 评论(0) 推荐(0)
摘要:constructor:对象的构造器,是一个函数。prototype:构造器的原型,只有函数才具有这个属性。isPrototypeOf:如果对象A存在于对象obj的原形链中,则A.isPrototypeOf(obj)返回true,而obj必定继承了A的属性。__proto__:访问对象的原型链在当前对象的上一级对象,即对象的父级对象,非W3C或ECMAscript标准,是浏览器对原型继承 的一种实现手段,存在于firefox和chrome,IE下不存在这个属性。js 对象的原形链应当是由 js 引擎维护的,属于“引擎级”的数据,__proto__ 属性的出现使原形链可以被修改,这使得在 js 阅读全文
posted @ 2013-01-05 17:21 allexwang 阅读(297) 评论(0) 推荐(0)
摘要:10条建议让你创建更好的jQuery插件在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式。这样我就可以 copy & paste 大部分的代码结构,只要专注最主要的逻辑代码就行了。使用相同的设计模式和架构也让修复bug或者二次开发更容易。一套经过验证的架构可以保证我的插件不出大的问题,不论插件简单还是复杂。我在这里分享10条我总结的经验。1. 把你的代码全部放在闭包里面这是我用的最多的一条。但是有时候在闭包外面的方法会不能调用。不过你的插件的代码只为你自己的插件服务,所以不存在这个问题,你可以把所有的代码都放在闭包里面。而方法可能应该放 阅读全文
posted @ 2012-10-26 10:53 allexwang 阅读(214) 评论(0) 推荐(0)
摘要:var Point = []; var p = $("#xx").css("background-position"); //IE的修复,IE中无法获得background-position, //只能获得background-position-x和background-position-y if (typeof (p) === "undefined"){ Point[0] = $("#xx").css("background-position-x"); Point[1] = $("# 阅读全文
posted @ 2012-09-26 15:58 allexwang 阅读(214) 评论(0) 推荐(0)
摘要:转发武器档案名称:apache ant最新版本:1.8.2用途:文件构建工具下载:http://labs.renren.com/apache-mirror//ant/binaries/apache-ant-1.8.2-bin.zipant使用文档:http://ant.apache.org/manual/index.html必备指数:使用难度:ant作为目前中国最受欢迎的开源构建工具,广泛应用于java工程构建。也许你会感到很疑惑,js作为动态语言,并不需要编译过程,为什么需要 ant这样的构建工具呢?ant能够帮助前端工程师解决那些问题呢?采用ant构建js和css的优点和缺点是什么呢?如何 阅读全文
posted @ 2012-08-09 17:32 allexwang 阅读(567) 评论(0) 推荐(0)
摘要:YUI Compressor是java程序,如果你对java很熟悉的话,大可快速的上手使用yuicompressor.jar;如果你和明河一样,对java很陌生,没关系,一样可以使用YUI Compressor,只不过使用的是淘宝UED前端制作的批处理工具,算是可视化的YUI Compressor工具,使用极其傻瓜化。今天向大家介绍的就是这款工具。点此下载1.配置java运行环境在安装YUI Compressor前,先要确保你的机子安装了JDK,并且添加了必要的环境变量。1.安装JDK2.配置下环境变量这里以win7为例,请看下图:(右击“我的电脑”,进入“属性”界面)(新建个JAVA_HOM 阅读全文
posted @ 2012-08-08 16:59 allexwang 阅读(824) 评论(0) 推荐(0)