摘要:
由于js声明提前的作用,所以在js中后面定义的函数也可以再前面使用。不过,项目中看到过这样的写法var a = function(){}, b = function(){};这种写法使代码看上去很整齐。虽然js对声明可以提前。比如,会对a、b变量的声明提前。但是此时a、b变量并未赋值。所以,在a中调用b就会出现调用失败。个人觉得这种写法不值得推广。 阅读全文
摘要:
1、之前听到api静态化预案,一直以为是前端发送api请求,如果api请求失败,则再次发送一条请求,去请求备份的静态资源。2、前两天了解到的api静态化预案是这样的:在请求api时,给api请求加上一个特定的参数,后端如果数据不正常,则根据该参数返回对应的备份数据。问题:具体实现不清楚。后续请教鸟哥或者明飞。 阅读全文
摘要:
1、危险:当记录了过多的cookie时,可能导致http header过大,进而导致服务器端发生错误,导致用户无法打开页面。2、cookie限制: 各浏览器对单cookie键的限制基本都在4kb左右。上下可能有30多b的差别。差别基本不大。 但对cookie总大小的限制却差别很大。其中chrome和IE8-的允许的总大小最小,为chrome 4997b,IE8- 4096b。因此总大小也基本需要限制在4000b以下。 个数超出时,firefox采取随机删除的策略,其它浏览器采取先进先出的策略。 单个cookie大小超出时,所有浏览器都不进行写入。 总字节数超出时,firefox不进行... 阅读全文
摘要:
在项目中,框架和内容的耦合带来了很多麻烦事儿。1、由于PM的需求不断变化,耦合在框架js中的内容js越来越多。2、由于并不是所有国家都需要的js也同样需要加载,浪费了性能。3、所有框架css和内容css都写在一个css文件中。导致所有国家都需要下载一些不必要的css。4、逻辑越来越复杂,维护成本不断提高。解决方法:1、框架只负责获取所需内容的数据,内容内部逻辑自行处理。2、两个js之间的通信依赖全局对象中模块对应的属性进行。框架获取到内容依赖的数据后抛给该属性,内容则从该属性中取出对应的数据执行。 阅读全文
摘要:
优点:每个模块只有一个ID,并且在css中不适用ID,ID从模板中传入js中,则该模块的复用灵活性会非常高。想要复用该模块时,只需要改动两个地方。一个是html中的ID,另外一个是写到全局conf.模块名.id中的ID字符串。js和css不需要改动。缺点:限制了ID的使用,在js中选择DOM元素时,效率会有所下降。 阅读全文
摘要:
1、jQuery有个很好用的方法是 end();2、在进行链式操作时,使用end方法,可以回溯到上一个jQuery对象。3、实现原理:jQuery内部有一个对象栈,当形成新的对象时,会将新对象推入到对象栈中。而当使用end方法时,时间上是回到对象栈的上一个状态,即prevObject。只有当使用jQuery内部的pushStack方法构建jQuery对象时才会将对象推入到对象栈中。 阅读全文
摘要:
数据库工作任务内存超过可用的RAM内存长/短查询写入冲突大连接(join)占用内存虚拟化共享一个HDD、磁盘寻死(disk seek death)在云端网络I/O波动编程线程:死锁、调试、非线性扩展等事件驱动编程:callback()过于复杂、如何在函数调用中存储有状态等缺乏调优、跟踪、日志等单模块不可扩展、单点故障(SPOF:Single Point Of Failure)、非横向扩展等有状态应用程序设计问题:开发的应用程序只在自己的机器行运行正常,或者只是在几个人测试的时候正常(没有经历压力测试)。算法过于复杂相关服务,例如DNS查找以及其他可能屏蔽的服务堆栈空间磁盘访问本地磁盘随机访问磁 阅读全文
摘要:
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是行内元素,在其加载之前所以无法为其设置 阅读全文
摘要:
bigpipe:先输出页面的整体布局,在按块输出输出页面的每个部分。这样可以让服务器的运算、网络的传输和浏览器的渲染并行。适用于服务器运算较慢的时候。bigrender:主要在浏览器端,先将字符串存放于textarea或者script的标签(不可知性的type)中。当用户触发时才将textarea或者script中的html取出插入相应的DOM节点。(理解不够深入,需要继续了解。。。。) 阅读全文
摘要:
从网页性能的角度来看,DNS的解析时间是比较耗时的。因此如果能预先下载网页中用到的其它域的资源。可提前进行DNS解析:预加载网页或静态资源的方法为: 阅读全文