随笔分类 - Javascript
摘要:前几天nodejs发布了新版本4.0,其中涉及到一个更新比较多的模块,那就是下面要介绍的timer模块。 timers: Improved timer performance from porting the 0.12 implementation, plus minor fixes (Jeremi...
阅读全文
摘要:## 背景Node.js 社区近期在美国独立日周末的狂欢之时爆出漏洞https://medium.com/@iojs/important-security-upgrades-for-node-js-and-io-js-8ac14ece5852先给出一段会触发该漏洞的代码![http://img3.t...
阅读全文
摘要:JSON对象的序列化与反序列化相信大家都很熟悉了。基本的api是JSON.parse与JSON.stringify.var json={ uiModule:'http://www.a.com', login:'true', mainSubjectId:3004, happydays:100, happyhours:1, userCount :200, itemCount:1000000, type:'all', mainSubjectId:3004, taglist:[ {'tagName':'xiaoc',
阅读全文
摘要:这次的模板引擎主要在算法方面做了些改进,主要借鉴正美的思路,https://github.com/RubyLouvre/mass-Framework/issues/22传统的字符串模块都要处理转义的问题,但我这新方法通过传参手段消灭了这步骤核心原理function a(){ var b = ["1,2,3"] return Function("b", "function test(){}; return function(data){ test(); return b }")(b)}a()+""主要原理是根据模版生
阅读全文
摘要:上次的js模板引擎v4基本已经可以满足大部分需求了,期间也碰到过一些问题,当模板里需要一些函数来处理数据时,必须得定一个全局函数,或者在一个全局变量上挂着一个属性,这种用法还是感觉蛮不爽的,没必要为了一个只在模板内部使用的工具函数影响其外部的代码,所以这次模板引入了像smarty模板那样可以定义在模版内部定义函数的helper机制,同时改善了v4中所以模板数据前面必须得加个data,比如有个对象a,模板里引用时必须得写上data.a这样不爽的东西,采用$a代替data.a用着的感觉好多了。该模板优点:1.模板采用js语法,没有学习成本2.也是由于优点1所以该模板的解析速度还是很占优势的3.可以
阅读全文
摘要:最近页面中要做个省市联动菜单,自然得与select的option打交道了开发过程中遇到几个bug,现整理出来。1.option.remove因为菜单是联动的,所以城市的option要动态更新,当然就得先清除了,于是我就写了个清除的函数function clearAllOptions(self){ var option=self.options; for(var i=0,len=option.length;i<len;i++){ option.remove(i); } }但发现在ie下并没有达到预期的效果产生这个的原因是option总是在动态的变化,所以无法全部清除掉解决办法是直接令它的i
阅读全文
摘要:最近的项目中大量使用了ajax技术,但ajax应用中容易导致浏览器的前进后退按钮失效,不产生前进后退功能,这是个很头疼的问题,它严重的破坏了用户美好的体验,但通过改变location.hash值来解决Ajax过程中导致的浏览器前进后退按键失效的问题Ybole.hash={url:'',setHash:function(a){ if(a.join)a=a.join('/'); $.browser.msie?$.locationHash(a):location.hash=a; },doHash:function(){var h = location.hash.rep
阅读全文
摘要:最近做de一个项目,整个页面的数据更新要纯ajax实现,没办法,连分页都得由我来写了,基本思路还是像后台那样实现分页,后台实现分页其实也就是用后台的程序来处理那段分页的模版,于是我想到了用js自己来解析那段类似的分页模版,正好以前自己也做了js模版引擎(http://www.cnblogs.com/hust/archive/2011/04/28/2032265.html),刚好派上用场,下面是分页的模版:{{if(data.totalpage>1){ }} {{ if(data.curpage!=1){}} <li><a href="javascript:vo
阅读全文
摘要:没事干的时候把凡客的首页扣下来研究了一下,在凡客的js代码里发现了一种跨域获取cookies的方法,基本原理是凡客的server端提供一个页面输出cookies字符串,client端采用jsonp的格式获取该cookies字符串。下面一段是凡客中一个跨域获取cookies的函数function setWelcome() { $.getScript("http://my.vancl.com/Usercenter/GetUserName.ashx", function() { if (typeof (data) != undefined && typeof (d
阅读全文
摘要:以下是原文:JS的this真是好难理解啊,求高手指点百度的前端面试题,代码如下:var a=5;function test(){ a=0; alert(a); alert(this.a); var a; alert(a);}test();new test();在Chrome上run了一下,结果是0500undefined0前三个结果好说,但对于第五个结果undefined我很疑惑,关键的就是这一句:alert(this.a);我的理解是,当运行到new test()这一句的时候,this指向了test,那么this.a应该就是a=0;这一句里面的0啊!为什么是undefined呢?求解答啊求解
阅读全文
摘要:有时我们看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较长的页面来说,这个方案是比较好的。可以节省带宽,加块页面加载速度!自己最近几天也在想着怎么实现这种功能,基本思路是给每个要延迟加载的图片一个假的src地址,然后给img标签字定义一个属性就叫dynamic吧,这个属性用了保存真实图片地址。当用户拖动滚动条时触发window.onscroll事件来检测哪些元素在用户的可视范围内,在可视范围并且还未加载的我们就加载它,嗯,基本原来就这样了。自己写
阅读全文
摘要:经常上淘宝的童鞋应该知道,每次购物确认付款后系统都会提示你给对方做评价,差评,中评,好评。今天闲着没事我自己也做了个类似的星级评价组件。您给的评价是:function addEvent(obj,evtype,fn,useCapture) { if (obj.addEventListener) { obj.addEventListener(evtype,fn,useCapture); } else { obj.attachEvent("on"+evtype,function(){return fn.call(obj)});//IE不支持事件捕获,修复ie绑定事件this指向w
阅读全文
摘要:上次的js模版引擎在ie6,7下总是发生错误,今天用ie8的调试工具终于找到了错误的根源所在,原来是自己多写了一个逗号,真囧!这次的模版引擎基本没啥大问题了,全面兼容ie6,7,8 ff,opera各大主流浏览器,并且修复了特殊标签}}}的bug,ok,直接上demo吧。 <div>hust_小C的模版引擎<h2>对象遍历</h2> {{ for(var i in data.a){ }} <li>{{=i}}:{{=data.a[i]}}</li> {{ } }}<h2>If else 解析</h2> {{if
阅读全文
摘要:昨晚写的那个js模版引擎有不少bug,比如有些分隔符不支持,ie下有bug,并且还用了遭不少人唾弃的with,今晚又进行了一下改善,提高了分隔符的自由度,避开了with的使用,修复了在ie下的bug(这个主要是由转义字符引起的bug,IE7下任然错误^_^),好了不多说了,直接看demo吧! <div>hust_小C的模版引擎<h2>对象遍历</h2> {{ for(var i in data.a){ }} <li>{{=i}}:{{=data.a[i]}}</li> {{ } }}<h2>If else 解析</h
阅读全文
摘要:上次自己尝试着做了下js的模版,发现那种方法解析模版确实太复杂了,这次换了下思路,总体来说,js模版要实现的就是让模版里边的js代码能够运行起来 <div>hust_小C的模版引擎 <% for(var i in a){ %> <li><%=i%>:<%=a[i]%></li> <%}%> <img src=<%=url%> </div> <a></a><a></a><a></a><a></a
阅读全文
摘要:最先知道的一个是window.eval函数,后来又知道IE下有个window.execScript。其实这两个函数有很大区别的。先举个例子吧demo1:var globalV =123;function testEval(){ eval(" var globalV = 'global' "); } testEval();alert(globalV);//弹出123,ie与ff都如此demo2:var globalV =123;function testEval(){ execScript(" var globalV = 'global
阅读全文
摘要:看了网上蛮多人都做了自己的js模版引擎,自己也看了很长一段时间源码,今天突然也想试下怎么写模版引擎,于是就琢磨了一下午,初步完成了if(包括else)标签的解析,希望路过的高手多多指教!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/h
阅读全文
摘要:先简单介绍下Functional.js吧functional.js 是模仿 Haskell 语言标准库 Prelude 制作的函数式编程库,主要实现了: 扩展的克里化函数运算符函数化紧缩的匿名函数语法无须指定参数的匿名函数语法函数向导语法基本的通用列表操作部分扩展基于对象化其中,扩展语法由字符串表示。未能实现的特性有: 尾递归优化模式匹配(包括参数匹配、列表匹配、情况分析)惰性运算(包括无穷列表)列表领悟扩展绑定、同时绑定其它列表操作(以及对于列表操作的基于对象化)最近没事研究了下Function.js的源码,咱们先从to-function.js开始to-function.js主要是让字符串变
阅读全文
摘要:虽然常写ajax方面的东西,但是很少去专门了解xmlHttpRequest的status各个值的含义,只是在用到时Google一下,下面将他人已总结过的转载一下,学习学习。 xmlHttpRequest对象的status代表当前http请求的状态,是一个长整型数据,现在介绍一下它的含义。 http请求状态及其含义表 1xx - 信息提示100 - 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新) 101 - 服务器将遵从客户的请求转换到另外一种协议。(HTTP 1.1新) 2xx - 成功200 - OK 一切正常,对GET和POST请求的应答文档跟在后面。 201
阅读全文
摘要:function f1(){ alert(1); } function f2(){ alert(2); } var f3 = f1.call; f3.call(f2); //2;alert(f3.call==f1.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.call.cal
阅读全文

浙公网安备 33010602011771号