摘要: 关注点 + HTML首屏渲染是效率低的(low performance),阻塞的(blocking),串行的(serial),即使在现代浏览器的优化下,表现依然差强人意,延迟页面load事件的触发时机 + 页面ready之后对于资源的操作和控制是高效的,非阻塞性的,并行的,可编程性的 为什么HTML 阅读全文
posted @ 2019-03-22 11:36 XBOY2012 阅读(263) 评论(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 阅读(457) 评论(0) 推荐(0) 编辑
摘要: jsonp安全性防范,分为以下几点:1、 防止callback参数意外截断js代码,特殊字符单引号双引号,换行符均存在风险2、 防止callback参数恶意添加标签(如script),造成XSS漏洞3、 防止跨域请求滥用,阻止非法站点恶意调用针对第三点,我们可以通过来源refer白名单匹配,以及cookieToken机制来限制而前两点,传统的做法分为以下几种:1、 纯手工过滤特殊字符,引号尖括号等,一旦发现潜在恶意字符则服务端拒绝,返回错误。此种方式较为严格,但是随之而来的问题是失败率会有所提升,尤其对于对外开发者。而且JS中恶意字符的变形十分多,此方式需要枚举所有非法字符,可能存在疏漏。我们 阅读全文
posted @ 2013-12-26 11:34 XBOY2012 阅读(822) 评论(0) 推荐(0) 编辑
摘要: 不同浏览器或者版本之间对于console对象的支持不尽相同,而console方法在开发调试过程中都是不错的工具。难道要在上线前把所有console.xxxx去掉以保证某些浏览器不报错么。其实可以变通解决。 浏览器报找不到console对象,那我们就手动构造一个接口完全一致的console对象 置于window中。这里采用了空方法和空对象。如此一来即使在很old的浏览器中,含有console.xxxxx的代码依然不会报错,完美运行。 下面附上修复兼容代码,要置于置于第一句console.xxxx调用之前,否则没有意义。 阅读全文
posted @ 2013-10-12 17:51 XBOY2012 阅读(274) 评论(0) 推荐(0) 编辑
摘要: PHP判断变量是否为长整形的方法,可用于判断QQ号等,避免了int溢出的问题 阅读全文
posted @ 2013-10-11 16:36 XBOY2012 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 属性字头选择器(Attribute Contains Prefix Selector)jQuery 属性字头选择器的使用格式是jQuery(‘[attribute|=value]‘),例如jQuery(‘[herflang|=en]‘)这句代码执行时将会选择文档中所有含有 herflang 属性,并且 herflang 的值以 “en” 开头的元素,即使 “en” 后面紧跟着连字符 “-” 也能进行选择。属性开头选择器(Attribute Starts With Selector)jQuery(‘[attribute^=value]‘),用于选择属性的值以某个字符串开头的元素,但和jQuery 阅读全文
posted @ 2012-11-28 17:38 XBOY2012 阅读(420) 评论(3) 推荐(0) 编辑
摘要: //PHP<5.3版本支持get_called_class()方法if (!function_exists('get_called_class')) { class class_tools { private static $i = 0; private static $fl = null; public static function get_called_class() { $bt = debug_backtrace(); //使用call_user_func或call_user_func_arra... 阅读全文
posted @ 2012-09-28 00:41 XBOY2012 阅读(598) 评论(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 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 本段代码实现了同步和异步获取服务器时间的放式,真正做到不会侵入服务器代码。主要原理是读取响应头部的Date值,即为服务器返回响应的时间(由服务器端生成),故可以以字符串格式取出,并可以转换为Date对象,以便后续操作。对于获取服务器时间提供了同步和异步两种放式调用,可根据实际需要选择jQuery.extend({ //获取系统时间 getSystemTime: function(){ return new Date(); }, //异步获取服务器时间 getServerTime_async: function(success){ $.a... 阅读全文
posted @ 2012-09-28 00:17 XBOY2012 阅读(627) 评论(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 阅读(1139) 评论(1) 推荐(0) 编辑