摘要:
上一篇我们初步学习了JavaScript Promises,本篇将介绍Promise如何优雅地进行错误处理以及提升操作node.js风格1的异步方法的逼格,没错就是使用promisify2。异步编程中的错误处理人性的、理想的也正如很多编程语言中已经实现的错误处理方式应该是这样:try { va... 阅读全文
摘要:
很久之前,我一直使用async来处理JavaScript异步编程中的嵌套回调问题。当然我也大概的了解过一些其它旨在解决这些问题的类库,诸如EventProxy、Jscex、StepJS、thenjs。 阅读全文
摘要:
关于AOP的基本概念,可以参见此文为什么我要在JavaScript中使用AOP?在我们的系统中有两个函数,func1和func2,func2是func1代码末尾的JSONP(跨域请求)回调。这两个函数内部逻辑相对复杂,代码行数也较多。因为func1的执行频率是10秒一次(对服务器的请求频率是10秒一次),这也就意味着这个系统的实时性要求相对较高。在现实世界,客户端与服务器之间的网络并不能保证永远正常连接,除了后端有DNSPOD、反向代理等容灾方案,前端也需要做一些同样的工作。现在我需要在原有已经相对复杂的函数中加入请求超时次数统计功能,一旦发现连续超时次数到达临界点,立即切换到备用服务器。超. 阅读全文
摘要:
@client side#ssh-keygen -t rsa#scp .ssh/id_rsa.pub remoteIP:/path/to/user/home@remote side$cd .ssh$cat ../id_rsa.pub >> authorized_keys@client side#ssh user@remoteIp如果服务端的ssh端口号不是默认的21,请记得加上端口号user@remoteIP -p 22 阅读全文
摘要:
由于安装xcode之前,自己误打误撞地装了gcc,装了xcode之后,使用brew install wget总是提示找不到c编译器或者make失败。其实这个时候只要brew doctor,然后在终端会给出很多提示。最终我的解决方案是需要修改环境变量,将/usr/local/bin放在/usr/bin的前面即可。这样在寻找gcc编译器的时候会优先使用该目录下的程序代码。具体方案是:1)查看当前环境变量$PATH 2)如果不对cd ~vi .bash_profile3)使用vi修改按下i开始修改输入 export PATH = /usr/local/bin;$PATH按下ESC:wq保存修改sou 阅读全文
摘要:
vi +n filename打开文件并将光标置于第n行行首( 和 )光标移到句首和句尾{ 和 }光标移动到段首和段尾nz将第n行滚动到屏幕顶部,不指定n时默认指定当前行 阅读全文
摘要:
设计目的:非常单纯,减少JS代码中的字符串拼接,让代码变得更加易读和可维护,尤其是代码已经非常庞大的情况下。/**@descriptionAnEasyTemplateinJavaScript,itisdesignedtoreducethestringconcatentionwork,*tomakethegiganticcodemorereadableandmaintainable.*/functionTemplate(tmpl,source){//addalltemplatetaskstothisarraythis.task=[];if(tmpl)this.task.push([tmpl,so 阅读全文
摘要:
最近项目发布比较频繁,每次发布或者增量更新JS文件后,第一件事就是确保服务器上的文件确实已经更新。不然随后的测试都是在做无用功,再加上Secure CRT和SecureFX经常周期性的有Bug,导致文件看起来已经更新,实际上却没有。最致命的一点就是浏览器,浏览器经常出现缓存清不掉的情况,尤其是IE 7十分严重,常常要借助于QQ管家类似的软件才能完全清楚缓存。所以在浏览器中输入URL手工验证JS文件是否已经更新是很不方便的,即使没有上面所说的种种BUG,你需要做的操作也不少。包括:清空缓存、输入URL、寻找文件变更点来比对文件是否已经被更新,这每一步都可以非常耗时和低效。如果遇见浏览器缓存BUG 阅读全文
摘要:
请首先修改hosts文件来模拟本机跨域127.0.0.1 localhost127.0.0.1 b.com127.0.0.1 a.com我们的目的:由a.com登录,如果登录成功,就生成a.com的cookie。而对于b.com则无需再次登录。遇到的困难:浏览器同源策略限制,即A站点页面的脚本是无法直接操纵B站点的内容。试想如果所有第三方网站都可以对taobao.com的首页任意篡改,那这个社会还有什么安全性可言呢?其实浏览器的安全策略逻辑很简单,就是我的地盘我做主,出了我的地盘我做不了主。解决方案:a.com根据用户输入操作a.com的cookie,b.com根据用户在a.com得到的输入数 阅读全文
摘要:
当需要使用跨域请求脚本时,我们较多的使用JSONP的方式。但是当页面使用到轮询时,这你就需要额外小心JavaScript内存泄漏的问题!
轮询间隔越段,内存泄漏越严重。而且随着浏览器的不同,严重程度也各不相同。
当然毫无疑问的是,IE系列始终是最让人纠结的。 阅读全文