随笔分类 -  Js

window.requestAnimationFrame
摘要:今天小猪在看一个html5的demo时一直在找他的动画是怎么实现的,按照我的理解就应该是调用setInterval来循环调用动画函数来实现。但是在Demo中就是找不到这个函数。干着急的小猪只好一步一步的来看是怎么实现的,之后发现了这么一句代码: window.RAF = (function () { return window.requestAnimationFrame || ... 阅读全文
posted @ 2014-04-04 15:22 smallerpig 阅读(1152) 评论(0) 推荐(0)
JavaScript内存优化
摘要:相对C/C++ 而言,我们所用的JavaScript 在内存这一方面的处理已经让我们在开发中更注重业务逻辑的编写。但是随着业务的不断复杂化,单页面应用、移动HTML5 应用和Node.js 程序等等的发展,JavaScript 中的内存问题所导致的卡顿、内存溢出等现象也变得不再陌生。 作为《JavaScript 从细节优化》的又一篇分享,这篇文章将从JavaScript 的语言层面进行内存的使用... 阅读全文
posted @ 2014-04-04 14:14 smallerpig 阅读(604) 评论(0) 推荐(0)
Server.UrlEncode()方法 空格转换成了+而非%20
摘要:在ASP.NET MVC 的Control类里提供了该方法。该方法可以很方便的对字符串进行url编码,但小猪今天却发现其将空格编码后变成了“+”而非JavaScript采用的encodeURIComponent()编码之后的%20。也许这算一个bug也许也不算。仔细想想在我们的url中确实不会存在空格,但是文件系统的命名却是可以使用空格的(Program Files),所以必须将空格转码。那为什么在.Net下回转换成+而在js中会是%20呢?关键问题是在encode成+之后再decode却不能转换成了空格了呀。这确实是个蛋疼的问题。引用了老外的一段描述:引用:As far as I know, 阅读全文
posted @ 2014-03-19 16:24 smallerpig 阅读(2569) 评论(0) 推荐(0)
闭包
摘要:Javascript的闭包下面代码中,generateClosure() 函数中有一个局部变量count,初值为0。还有一个叫做 get 的函数,get 将其父作用域,也就是 generateClosure() 函数中的 count 变量增加1,并返回 count 的值。generateClosure() 的返回值是 get 函数。在外部我们通过 counter 变量调用了 generateClosure() 函数并获取了它的返回值,也就是 get 函数,接下来反复调用几次counter(),我们发现每次返回的值都递增了1。var generateClosure = function() { 阅读全文
posted @ 2014-01-22 16:07 smallerpig 阅读(159) 评论(0) 推荐(0)
让DIV实现抖动效果!
摘要:JavaScript层抖动效果 阅读全文
posted @ 2014-01-16 17:24 smallerpig 阅读(2157) 评论(0) 推荐(0)
防止用户按浏览器后退按钮回到登陆页面
摘要:这个在注册或者登陆的时候是一个普遍的问题,登陆之后,跳转到另外一个页面,如果这时候用户不小心点了后退按钮如果处理不当的话就会重新回到登陆页面,但事实是用户已经登录了,所有页面的状态都应该是已登录的,不管什么情况下都不应该让用户在看到这个页面。用户的点击操作会引发上面的问题,而程序 history.go(-1) & history.back() 也会有一样的bug。这样的问题处理方案比较简单,ajax 拿到 success 的状态码时立刻做跳转,但是这里不能用 window.location.href,这样浏览器还是会记录这个登录历史,应该使用 window.location.repla 阅读全文
posted @ 2014-01-15 20:55 smallerpig 阅读(897) 评论(0) 推荐(0)
javascript密码强度验证!
摘要://CharMode函数//测试某个字符是属于哪一类function CharMode(iN) { if (iN>=48 && iN =65 && iN =97 && iN >>=1; } return modes; } //checkStrong函数 //返回密码的强度级别 function checkStrong(sPW) { if (sPW.length 输入密码: 密码强度: 弱 中 强 |= 是JavaScript中按位“或”赋值运算符 JavaScript中按位“或”赋值运算符是对变量... 阅读全文
posted @ 2013-11-18 17:39 smallerpig 阅读(350) 评论(0) 推荐(0)
jQuery的bind()与live()
摘要:前言最近一个项目的前端有这样的一个需求:页面中有某按钮,点击按钮之后通过服务器的返回信息更改这个按钮的点击事件执行函数。方案1之前小猪使用的方法是给按钮增加class。在jquery中通过class查找到之后使用click增加函数功能$(".class1").click(function(){ $(this).removeClass("class1"); $(this).addClass("class2");});这样的代码是实现了样式上的变化。但是虽然样式变化了(class1=>class2),但是再次点击该按钮时执行的还是缺 阅读全文
posted @ 2013-11-16 16:39 smallerpig 阅读(187) 评论(0) 推荐(0)
event.srcElement在火狐(FireFox)下的兼容问题。搜索框获得焦点时默认文字变化
摘要:前言:项目中用到了一个功能,搜索框里有默认的文字,当搜索框获得焦点时里面的默认文字消失,如果失去焦点时搜索框内容为空则让里面的内容回复默认!,.实现:很轻松的在网上找到了类似代码 $("#search_text").focus(function (event) { with (event.srcElement) //如果当前值为默认值,则清空 if (value == defaultValue) value = ""; }); $("#search_text").blur(function res(event) { ... 阅读全文
posted @ 2013-11-13 08:45 smallerpig 阅读(442) 评论(0) 推荐(0)
JS引用类型之——RegExp
摘要:前言之前小猪分享过关于正则表达式的一些内容,具体请看传送门,今天小猪来分享怎么在js中使用正则表达式。定义ECMAScript通过RegExp类型来支持正则表达式。使用下面类似Perl的语法,就可以创建一个正则表达式。var expression = |pattern |flags;其中的模式(pattern)部分可以是任何简单或复制的正则表达式,可以包含字符串、限定符、分组、向前查找以及反向引用。每个正则表达式都可带有一或多个标志(flags),用以标明正则表达式的行为。RegExp实例属性RegExp对象的属性分为静态属性和实例属性。下面分别进行介绍。1.1 静态属性(1)index属性. 阅读全文
posted @ 2013-10-16 11:26 smallerpig 阅读(215) 评论(0) 推荐(0)
Js数据类型之——Date
摘要:小猪曾经分享过一篇文章,主要是讲到后台使用c#将DataTime类型序列化到前台之后进行操作:具体请看传送门今天小猪来分享在JS中的Data类型类型说明ECMAScript中的Data类型是在早期Java中的java.util.Data类基础上构建的。为此,Date类型使用自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的285616年。要创建一个日期对象,使用new操作符和Date构造含糊即可。var now = 阅读全文
posted @ 2013-10-16 10:48 smallerpig 阅读(1791) 评论(0) 推荐(0)
JS引用类型之——数组
摘要:前言数组作为JS中非常常用的引用类型,其功能是非常强大滴,今天小猪就彻底的看了下它。为了防止猪脑子不够用所以记录在案呐1、数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了... 阅读全文
posted @ 2013-10-15 16:40 smallerpig 阅读(1639) 评论(0) 推荐(0)
JavaScript基本类型值与引用类型值
摘要:前言JS变量可以用来保存两种类型的值:基本类型值和引用类型值。基本类型的值源自一下5种基本数据类型:Underfined、Null、Boolean、Number和String。基本类型值和引用类型值具有以下特点:基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中;从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本;引用类型的值是对象,保存在堆内存中;包含引用类型值的变量实际上包含的并不是对象本身,而是一个指向该对象的指针;从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终都指向同一个对象;确定一个值是哪种基本类型可以使用Typeof操作符,而确定一个 阅读全文
posted @ 2013-10-15 11:08 smallerpig 阅读(273) 评论(0) 推荐(0)
在Html中使用JavaScript的几点小结
摘要:前言越发的意识到JS这门作为前端语言的重要性。所以下定决心这段时间在项目允许的情况下花大量时间在学习JS上。争取让自己的前端功底深厚一点。小结在包含外部js文件时,必须将src属性设置为指向相应文件的URL。而这个文件既可以是包含它的页面位于同一个服务器上的文件,也可以是其他任何域中的文件。所有元素都会按照他们在页面中出现的先后顺序依次呗解析。在不适用defer和async属性的情况下,只有解析完前面元素中的代码之后,才会开始解析后面的元素中的代码。由于浏览器会先解析完不适用defer属性的元素中的代码,然后再解析后面的内容,所以一般把元素放在页面最后,即主要内容后面,标签前面。适用defer 阅读全文
posted @ 2013-10-14 17:02 smallerpig 阅读(129) 评论(0) 推荐(0)
jQuery实现图片延迟加载
摘要:html:js:$("img").lazyload();注意:1.需要juqery.lozyload.min.js(下载路径:下载链接)2.juqery.lozyload.min.js依赖于jquery。 阅读全文
posted @ 2013-10-12 15:43 smallerpig 阅读(158) 评论(0) 推荐(0)
HTML5 Server-sent Events ASP.NET向Web客户端推送信息
摘要:前言在 Web 应用中,浏览器和服务器之间使用的是请求 / 响应的交互模式。浏览器发出请求,服务器根据收到的请求来生成相应的响应。浏览器再对收到的响应进行处理,展现给用户。响应的格式可能是 HTML、XML 或 JSON 等。随着 REST 架构风格和 AJAX 的流行,服务器更多地使用 JSON 作为响应的数据格式。Web 应用使用 XMLHttpRequest 对象来发送请求,并根据服务器端返回的数据,对页面的内容进行动态更新。通常来说,用户在页面上的操作,比如点击或移动鼠标,会触发相应的事件。由 XMLHttpRequest 对象来发出请求,得到服务器响应之后进行页面的局部更新。这种方式 阅读全文
posted @ 2013-09-11 10:42 smallerpig 阅读(502) 评论(1) 推荐(0)
jquery.min.map 404 (Not Found)
摘要:很高兴你能注意到这个问题,因为其实这个错误对页面呈现效果是毫无影响的。说明你找到这个问题完全是想你的页面完美运行毫无错误!小猪说错了吗?请回答:1:你用的是chrome浏览器吗?2:其他浏览器没出现这个错误吧?3:你用了jquery库,而且你并没有在页面引用标题中的文件。回答应该都是“YES”,因为距目前为止好像只有chrome浏览器支持这个特性。下面小猪来说说这个问题的原因。目前大多数js库都是使用压缩过的,压缩的好处是:(1)压缩,减小体积。比如jQuery 1.9的源码,压缩前是252KB,压缩后是32KB。(2)多个文件合并,减少HTTP请求数。(3)其他语言编译成JavaScript 阅读全文
posted @ 2013-09-03 11:23 smallerpig 阅读(496) 评论(0) 推荐(0)
C#操作JSON字符串
摘要:在前面的文章中,小猪分享过如何将json字符串转换成js对象,具体请看传送门。那如果是前台通过js等其他东东发送过来的json字符串我们要如何将其转换成C#对象呢?如果是post过来的json数组的话我们可以直接使用Request.Form[""]的方式获取值。今天小猪分享的是如何将json数组转换成C#对象。首先引用,using System.Web.Script.Serialization;第二部:定义实体类class Entity{ public int status { get; set; }}第三部:定义泛型转换public static T JSONToObje 阅读全文
posted @ 2013-08-27 10:18 smallerpig 阅读(469) 评论(0) 推荐(0)
C#和JS的日期格式转换
摘要:C#和JS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字符串。整数1335258540000实际上是一个1970 年1月1日00:00:00至这个DateTime中间间隔的毫秒数。通过javascript用eval函数可以把这个日期字符串转换为一个带有时区的Date对象,如下用var date = eval('new ' + eval('/Date(1335258540000)/').source)这样即可得到一个JS对象通过a 阅读全文
posted @ 2013-08-19 14:05 smallerpig 阅读(534) 评论(0) 推荐(1)
Js操作后台返回的json数据
摘要:项目开发工程中经常有类似这样的需求,前台向后台请求一个json数据,后台返回json字符串提供前台,js获取之后对前端进行对应的操作。 这里需要主要的是在前台获取到json字符串后需要转换成json对象://JSON字符串: var str1 = '{ "name": "cxh", "sex": "man" }'; //JSON对象: var str2 = { "name": "cxh", "sex": "man" }; 阅读全文
posted @ 2013-08-19 10:40 smallerpig 阅读(2501) 评论(0) 推荐(0)