随笔分类 -  js

上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要:// 该方法被绑定在jQuery对象上,只能通过$.noConflict()调用 noConflict: function( deep ) { // 取消$在window上的绑定,方法是将_$绑定到window对象上,从而解除其对jQuery的引用 if ( window.$ === jQuery ) { window.$ = _$; } // 如果传入参数deep为ture,说明用户解除window对象的jQuery属性对jQuery对象的引用,执行$同样的操作 if ( deep && window.jQuery === jQuery ) { ... 阅读全文
posted @ 2013-12-01 17:03 charling 阅读(2268) 评论(0) 推荐(0) 编辑
摘要:// extend方法为jQuery对象和init对象的prototype扩展方法// 同时具有独立的扩展普通对象的功能jQuery.extend = jQuery.fn.extend = function() { /* *target被扩展的对象 *length参数的数量 *deep是否深度操作 */ var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, ... 阅读全文
posted @ 2013-12-01 15:55 charling 阅读(7441) 评论(2) 推荐(1) 编辑
摘要:假设需求为:在当天晚上0:00过期。方法:得到当天晚上0:00这个时间点的一个时间。function getNextDate(){ var d = new Date(), year = d.getFullYear(), month = d.getMonth(), day = d.getDate(), nextDay = new Date( year, month, ( day + 1 ), 00, 00, 00 ); return nextDay; },接下来是设置cookie:$.cookie("someKey", "someVal", {expire 阅读全文
posted @ 2013-11-29 11:51 charling 阅读(497) 评论(0) 推荐(0) 编辑
摘要:jQuery().end()的作用是返回当前jQuery对象的上一个状态。1、end()源码: // 所有通过pushStack方法获得的jQuery对象都可以通过end方法返回之前的状态 // 如果有preObject对象这返回该对象,否则调用构造函数返回jQuery的空对象 end: function() { return this.prevObject || this.constructor(null); }, end()的源码很简单,但是需要了解prevObject是如何形成的,所以需要了解pushStack方法都做了什么。2、pushStack()源码: pushS... 阅读全文
posted @ 2013-11-29 09:22 charling 阅读(809) 评论(0) 推荐(0) 编辑
摘要:该方法是绑定在jQuery.prototype上的一个静态方法,目的是取出jQuery对象中的某个或全部DOM元素。使用方法: $("someDOM").get(index); 此时会获取到$("someDOM")这个jQuery对象中第index个DOM元素。源码:get: function( num ) { // 如果get不传如参数,则返回当前jQuery对象中的所有DOM元素的数组形式。(jQuery对象是类数组,内部包含一个数组) return num == null ? this.toArray() : // 如果传入如果num是负数,则从数 阅读全文
posted @ 2013-11-29 09:11 charling 阅读(358) 评论(0) 推荐(0) 编辑
摘要:// 初始化jQuery对象,即jQuery.fn.init对象 // @param selector 选择器,可能是DOM对象、html字符串、jQuery对象、函数或其他任意值。 // @param context 选择器选择的范围 // @param rootjQuery == $(document); init: function( selector, context, rootjQuery ) { var match, elem; //如果selector是""、null、undefined、false,则返回this,这里的this指针指向init对象 //如果 阅读全文
posted @ 2013-11-27 21:56 charling 阅读(10076) 评论(0) 推荐(0) 编辑
摘要:1、如果变量中只包含字符、数字、下划线,可以将变量直接写在双引号中,如:"my name is $name"2、如果带有其它字符,如“.”,则需要将变量用单引号括起来,如:“my name is '$name.cl'”3、双引号中不仅可以嵌入变量,还可以加入修饰符对变量进行修饰。如:“my name is ” 阅读全文
posted @ 2013-11-26 23:24 charling 阅读(334) 评论(0) 推荐(0) 编辑
摘要:1、变量赋值的两种写法 2、作用范围使用scope来定义 //仅当前模板内有效 //当前模板和包含该模板的模板内可见 //该变量在相关模板内都可见 阅读全文
posted @ 2013-11-26 23:02 charling 阅读(884) 评论(0) 推荐(0) 编辑
摘要:smarty提供了一个获取时间戳的方法:使用该方法获取到当时的时间戳之后,使用格式化修饰符data-format进行修饰:'%Y-%m-%d %H:%M:%S' 阅读全文
posted @ 2013-11-26 00:17 charling 阅读(8336) 评论(1) 推荐(0) 编辑
摘要:1、模块重构需要考虑新版和老版的过渡风险,魔抗重构代码修改量很大,风险很高。再加上多国家同时更改,风险会更高,所以需要考虑过渡方案。2、对耦合的模块进行拆分,尽量减少耦合。3、重构完成后需要请大家进行codereview,发现其中的问题,使方案最优化。4、遵守最新的代码规范。 阅读全文
posted @ 2013-11-25 23:55 charling 阅读(316) 评论(0) 推荐(0) 编辑
摘要:由于js声明提前的作用,所以在js中后面定义的函数也可以再前面使用。不过,项目中看到过这样的写法var a = function(){}, b = function(){};这种写法使代码看上去很整齐。虽然js对声明可以提前。比如,会对a、b变量的声明提前。但是此时a、b变量并未赋值。所以,在a中调用b就会出现调用失败。个人觉得这种写法不值得推广。 阅读全文
posted @ 2013-11-24 22:04 charling 阅读(272) 评论(0) 推荐(0) 编辑
摘要:1、之前听到api静态化预案,一直以为是前端发送api请求,如果api请求失败,则再次发送一条请求,去请求备份的静态资源。2、前两天了解到的api静态化预案是这样的:在请求api时,给api请求加上一个特定的参数,后端如果数据不正常,则根据该参数返回对应的备份数据。问题:具体实现不清楚。后续请教鸟哥或者明飞。 阅读全文
posted @ 2013-11-24 21:46 charling 阅读(564) 评论(0) 推荐(0) 编辑
摘要:1、危险:当记录了过多的cookie时,可能导致http header过大,进而导致服务器端发生错误,导致用户无法打开页面。2、cookie限制: 各浏览器对单cookie键的限制基本都在4kb左右。上下可能有30多b的差别。差别基本不大。 但对cookie总大小的限制却差别很大。其中chrome和IE8-的允许的总大小最小,为chrome 4997b,IE8- 4096b。因此总大小也基本需要限制在4000b以下。 个数超出时,firefox采取随机删除的策略,其它浏览器采取先进先出的策略。 单个cookie大小超出时,所有浏览器都不进行写入。 总字节数超出时,firefox不进行... 阅读全文
posted @ 2013-11-24 20:51 charling 阅读(771) 评论(0) 推荐(0) 编辑
摘要:在项目中,框架和内容的耦合带来了很多麻烦事儿。1、由于PM的需求不断变化,耦合在框架js中的内容js越来越多。2、由于并不是所有国家都需要的js也同样需要加载,浪费了性能。3、所有框架css和内容css都写在一个css文件中。导致所有国家都需要下载一些不必要的css。4、逻辑越来越复杂,维护成本不断提高。解决方法:1、框架只负责获取所需内容的数据,内容内部逻辑自行处理。2、两个js之间的通信依赖全局对象中模块对应的属性进行。框架获取到内容依赖的数据后抛给该属性,内容则从该属性中取出对应的数据执行。 阅读全文
posted @ 2013-11-24 20:11 charling 阅读(263) 评论(0) 推荐(0) 编辑
摘要:优点:每个模块只有一个ID,并且在css中不适用ID,ID从模板中传入js中,则该模块的复用灵活性会非常高。想要复用该模块时,只需要改动两个地方。一个是html中的ID,另外一个是写到全局conf.模块名.id中的ID字符串。js和css不需要改动。缺点:限制了ID的使用,在js中选择DOM元素时,效率会有所下降。 阅读全文
posted @ 2013-11-24 19:54 charling 阅读(172) 评论(0) 推荐(0) 编辑
摘要:1、jQuery有个很好用的方法是 end();2、在进行链式操作时,使用end方法,可以回溯到上一个jQuery对象。3、实现原理:jQuery内部有一个对象栈,当形成新的对象时,会将新对象推入到对象栈中。而当使用end方法时,时间上是回到对象栈的上一个状态,即prevObject。只有当使用jQuery内部的pushStack方法构建jQuery对象时才会将对象推入到对象栈中。 阅读全文
posted @ 2013-11-24 19:24 charling 阅读(247) 评论(0) 推荐(0) 编辑
摘要:数据库工作任务内存超过可用的RAM内存长/短查询写入冲突大连接(join)占用内存虚拟化共享一个HDD、磁盘寻死(disk seek death)在云端网络I/O波动编程线程:死锁、调试、非线性扩展等事件驱动编程:callback()过于复杂、如何在函数调用中存储有状态等缺乏调优、跟踪、日志等单模块不可扩展、单点故障(SPOF:Single Point Of Failure)、非横向扩展等有状态应用程序设计问题:开发的应用程序只在自己的机器行运行正常,或者只是在几个人测试的时候正常(没有经历压力测试)。算法过于复杂相关服务,例如DNS查找以及其他可能屏蔽的服务堆栈空间磁盘访问本地磁盘随机访问磁 阅读全文
posted @ 2013-11-22 09:46 charling 阅读(447) 评论(0) 推荐(0) 编辑
摘要:1、一般情况下,我们会为img标签设置width和height属性来解决图片占位问题。但设置width和height属性并不能解决所有浏览器图片占位问题。2、设置图片占位在chrome和IE中生效,但在firefox中如果图片加载失败,并不会为图片预留width和height属性设置的大小。3、解决的方法是:除了设置width和height属性外,添加一个内联的style属性style="display:block" 或者"display:inline-block;"4、原因分析:可能在firefox中,由于img是行内元素,在其加载之前所以无法为其设置 阅读全文
posted @ 2013-11-21 23:52 charling 阅读(3093) 评论(0) 推荐(0) 编辑
摘要:bigpipe:先输出页面的整体布局,在按块输出输出页面的每个部分。这样可以让服务器的运算、网络的传输和浏览器的渲染并行。适用于服务器运算较慢的时候。bigrender:主要在浏览器端,先将字符串存放于textarea或者script的标签(不可知性的type)中。当用户触发时才将textarea或者script中的html取出插入相应的DOM节点。(理解不够深入,需要继续了解。。。。) 阅读全文
posted @ 2013-11-21 09:35 charling 阅读(205) 评论(0) 推荐(0) 编辑
摘要:从网页性能的角度来看,DNS的解析时间是比较耗时的。因此如果能预先下载网页中用到的其它域的资源。可提前进行DNS解析:预加载网页或静态资源的方法为: 阅读全文
posted @ 2013-11-21 09:26 charling 阅读(729) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页