随笔分类 -  Javascript

这里收录了许多实用的Javascript脚本技术
摘要:关注点 + HTML首屏渲染是效率低的(low performance),阻塞的(blocking),串行的(serial),即使在现代浏览器的优化下,表现依然差强人意,延迟页面load事件的触发时机 + 页面ready之后对于资源的操作和控制是高效的,非阻塞性的,并行的,可编程性的 为什么HTML 阅读全文
posted @ 2019-03-22 11:36 XBOY2012 阅读(280) 评论(0) 推荐(0)
摘要:主要思路是使用兼容性和稳定性都保持一致的substring方法重写/覆盖substr/** * String.substr() bug fix * @param start * @param len * @returns */String.prototype.substr = function(start, len) { var str = this; var l = str.length; if(start >= l) return ''; if(arguments.length == 1) { if(start >= 0 && start... 阅读全文
posted @ 2014-01-16 14:48 XBOY2012 阅读(477) 评论(0) 推荐(0)
摘要:jsonp安全性防范,分为以下几点:1、 防止callback参数意外截断js代码,特殊字符单引号双引号,换行符均存在风险2、 防止callback参数恶意添加标签(如script),造成XSS漏洞3、 防止跨域请求滥用,阻止非法站点恶意调用针对第三点,我们可以通过来源refer白名单匹配,以及cookieToken机制来限制而前两点,传统的做法分为以下几种:1、 纯手工过滤特殊字符,引号尖括号等,一旦发现潜在恶意字符则服务端拒绝,返回错误。此种方式较为严格,但是随之而来的问题是失败率会有所提升,尤其对于对外开发者。而且JS中恶意字符的变形十分多,此方式需要枚举所有非法字符,可能存在疏漏。我们 阅读全文
posted @ 2013-12-26 11:34 XBOY2012 阅读(857) 评论(0) 推荐(0)
摘要:不同浏览器或者版本之间对于console对象的支持不尽相同,而console方法在开发调试过程中都是不错的工具。难道要在上线前把所有console.xxxx去掉以保证某些浏览器不报错么。其实可以变通解决。 浏览器报找不到console对象,那我们就手动构造一个接口完全一致的console对象 置于window中。这里采用了空方法和空对象。如此一来即使在很old的浏览器中,含有console.xxxxx的代码依然不会报错,完美运行。 下面附上修复兼容代码,要置于置于第一句console.xxxx调用之前,否则没有意义。 阅读全文
posted @ 2013-10-12 17:51 XBOY2012 阅读(290) 评论(0) 推荐(0)
摘要:Date.format = function(d, mask){ var zeroize = function (value, length) { if (!length) length = 2; value = String(value); for (var i = 0, zeros = ''; i < (length - value.length); i++) { zeros += '0'; } return zeros + value; }; return mask.replac... 阅读全文
posted @ 2012-09-28 00:29 XBOY2012 阅读(447) 评论(0) 推荐(0)
摘要:本段代码实现了同步和异步获取服务器时间的放式,真正做到不会侵入服务器代码。主要原理是读取响应头部的Date值,即为服务器返回响应的时间(由服务器端生成),故可以以字符串格式取出,并可以转换为Date对象,以便后续操作。对于获取服务器时间提供了同步和异步两种放式调用,可根据实际需要选择jQuery.extend({ //获取系统时间 getSystemTime: function(){ return new Date(); }, //异步获取服务器时间 getServerTime_async: function(success){ $.a... 阅读全文
posted @ 2012-09-28 00:17 XBOY2012 阅读(641) 评论(0) 推荐(1)
摘要:当JavaScript代码需要操作文档时,涉及到一些资源的调度。如果可以在用户闲置未操作页面的时候能将可能用到的资源事先加载进来,那么需要调用时会得到很好的访问速度。下面代码实现了Javascript前端缓存资源。主要利用了Image类设置src属性时会触发一个请求url,从而缓存了资源。而且这一操作是异步的。资源文件(如图片)的缓存记载不会阻塞JS代码的继续运行。而是并行的。这一做法是参考了Google的一些JS代码实现的。//内容缓存管理器function XCache(){}//立刻缓存特定资源XCache.cache = function(p){ if(p instanceof ... 阅读全文
posted @ 2012-09-26 23:23 XBOY2012 阅读(1178) 评论(1) 推荐(0)
摘要:JavaScript 可以实现带缓存的AJAX请求。具体实现方法可以参照下面Demo//单例模式AJAX请求//可对AJAX请求进行缓存处理function DataContext(){ var m_data = null; this.getData = function(option){ var opt = $.extend({ cached: true, //缓存参数,默认为试用缓存 success: function(){}, //成功回调 error: functio... 阅读全文
posted @ 2012-09-26 22:56 XBOY2012 阅读(583) 评论(0) 推荐(0)
摘要:Javascript的变量实际上Javascript中,变量 = 对象属性,这是因为 Javascript 在执行脚本之前会创建一个Global对象,所有的全局变量都是这个Global对象的属性,执行函数时也会创建一个Activation对象,所有的局部变量都是这个Activation对象的属性。如下例:var global = 42;this.global; // 42, 可以通过this来访问Global对象this.global2 = 12;global2; // 12function foo() {var local = 36;// 不过无法直接访问Activation,// ... 阅读全文
posted @ 2012-08-29 11:58 XBOY2012 阅读(499) 评论(0) 推荐(0)