随笔分类 -  4 JavaScript 的世界

让你了解它的神奇力量......
基于 Postgres 实现一个 Job Queue
摘要:今天看到一篇赞美 Postgres 的文章:Postgres is Too Good (And Why That's Actually a Problem) ,显然是非常吸引眼球的,作者用 PG 实现了需要用到的所有微服务。 做 AFFiNE 我们是用 Redis 的 pub/sub 实现的 Job 阅读全文

posted @ 2025-06-20 20:20 MK2 阅读(22) 评论(0) 推荐(0)

Use Blanket.js instead of jscover
摘要:在遇到 Blanket.js 之前,我一直使用这 jscover 来做代码覆盖率测试。jscover使用 jscover ,好处是不需要编译,直接使用 java 版本;缺点是需要 java 环境依赖。通过 Makefile 来驱动整个测试执行,如 urllib/MakefileTESTS = test/*.test.jsREPORTER = specTIMEOUT = 20000JSCOVERAGE = ./node_modules/jscover/bin/jscovertest: @NODE_ENV=test ./node_modules/mocha/bin/mocha \ --re... 阅读全文

posted @ 2013-06-07 11:16 MK2 阅读(1527) 评论(0) 推荐(0)

使用 connect-domain 捕获异步调用中出现的异常
摘要:之前经常有同学会问到怎么有些异常无法捕获到呢?虽然 connect 已经在 handler 外层加了 try catch ,还是无法捕获异步调用中产生的异常。现状例如最简单的 helloworld.js 代码var connect = require('connect');var app = connect().use(function (req, res, next) { if (req.url === '/sync_error') { throw new Error('sync error'); } if (req.url === ' 阅读全文

posted @ 2012-12-27 12:25 MK2 阅读(1984) 评论(0) 推荐(0)

git submodule,解决依赖模块更新
摘要:git submodule add 添加项目的依赖模块在项目的根目录添加子模块$ cd demo_project$ git submodule add git://github.com/felixge/node-mysql.git deps/mysql$ git submodule init$ git submodule update# 提交更改git submodule init and update 就可以直接获取依赖模块了$ git submodule initSubmodule 'deps/connect' (git://github.com/senchalabs/co 阅读全文

posted @ 2011-04-11 18:05 MK2 阅读(14646) 评论(3) 推荐(0)

nodejs: 真正的一份代码,到处运行
摘要:## 现状: 冗余 在web开发中,我们是否常常会使用不同的编程语言实现相同的功能? 如一个文件上传功能,需要对上传文件进行文件格式限制。我们通常会使用后缀名做限制。 ### 导致这样重复工作的原因是为什么? 1. 前端永远不可信; 2. 前端和后端使用不同的编程语言; ### 这样的冗余会带来什么代价? 1. 修改业务逻辑,需要重复做2次:如突然发现少支持了 *docx* 文件类型,需要同时修改javascript代码和python代码 2. 增加确保javascript代码和python代码业务逻辑一致的代价。需要分别写2种测试,unit test跑多一倍。 ## nodejs时代:DRY Use [nodejs](http://nodejs.org) no more [DRY](http://c2.com/cgi/wiki?DontRepeatYourself) ! 阅读全文

posted @ 2011-03-30 12:00 MK2 阅读(5710) 评论(23) 推荐(5)

web旺旺技术变迁的一些笔记痕迹
摘要:如何确定一个连接?这是一个很有价值而又让人无法一下子得出答案的问题:答:原ip,原端口,目的ip,目的端口。TCP状态结合TCP各个状态的转换图,来看看Linux的TCP调优参数及说明:Linux的TCP调优参数及说明//向外连接可用端口范围echo “1024 65535” > /proc/sys/net/ipv4/ip_local_port_range//time_wait连接重用echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse //快速回收time_wait连接echo 1 > /proc/sys/net/ipv4/tcp_tw_recy 阅读全文

posted @ 2011-03-17 10:33 MK2 阅读(922) 评论(2) 推荐(0)

nodejs: mkdirs 递归创建目录
摘要:nodejs里面的所有文件操作我们很显然地都会选择异步方式。nodejs对于文件的基本操作果然是很基本的。例如我们想创建一个二级目录:/abc/def,使用fs.mkdir必须先判断/abc,存在,才继续创建/abc/def。这样几个一层层的callback,必要会影响代码的美观性(^_^,写代码也是一门艺术)。于是乎有了一下通过递归对fs.mkdir和path.exists的封装,得到的目录创建 辅助函数:mkdirs// 创建所有目录var mkdirs = module.exports.mkdirs = function(dirpath, mode, callback) { path.e 阅读全文

posted @ 2011-03-10 20:21 MK2 阅读(13494) 评论(4) 推荐(2)

nodejs实用示例:缩址还原
摘要:nodejs最近好红火,我也趁寒冷天气在nodejs的火炉边取暖一下。思路非常简单:httpserver获取需要还原的url;使用httpclient递归请求这个url,直到发现http status not in (302, 301)为止。返回还原的原url。好吧,代码如下:var net = require('net'), http = require('http'), url = require('url'), fs = require('fs');var DEFAULT_PORTS = { 'http:': 阅读全文

posted @ 2010-12-27 19:22 MK2 阅读(1728) 评论(0) 推荐(2)

让你的博文自动带上缩址,方便发到微博客上
摘要:添加以下代码到你的博客中: (呵呵,抄袭至lulu Studio http://s8.hk/0itw)<script type="text/javascript"> $(function(){ c_url = 'http://s8.hk:8088/s8/s?format=text&longUrl='; c_url += document.location.href; c_url... 阅读全文

posted @ 2010-01-15 15:51 MK2 阅读(628) 评论(0) 推荐(1)

Tornado JSONPHandler, 支持JSONP的请求封装
摘要:由于JSONP强大的跨域访问功能,发现tornado没有对jsonp的默认支持,还好tornado是开源的,就简单实现了一个JSONPHandler,对一切JSONP请求进行封装。JSONPHandler实现代码如下:只需要对finish方法进行简单封装,即可[代码]测试代码:main.py[代码]index.html[代码]测试结果:浏览器访问: http://www.client.com:80... 阅读全文

posted @ 2009-11-05 08:51 MK2 阅读(2382) 评论(0) 推荐(1)

第一个firefox插件: urlsafefox,url安全插件,自动检测google和百度搜索结果的安全性(新增支持bing和yahoo, soso,youdao)
摘要:周末闲着无聊,想学学firefox插件开发,模仿金山网盾的搜索结果ie插件,做了一个firefox版的。其实代码逻辑很简单,就是使用XMLHttpRequest异步请求,然后组装返回结果,输出到页面上;由于对XUL不熟悉,就直接使用html完成了。效果截图如下:搜索关键词: 非主流还能右键验证选中url:呵呵,just fun.下载地址: urlsafefox.xpi 2009.8.25 更新: ... 阅读全文

posted @ 2009-08-15 21:42 MK2 阅读(1245) 评论(0) 推荐(1)

tenjin - 号称全球最快的模板引擎
摘要:Tenjin, "Tenjin is a very fast and full-featured template engine available in several script languages."官方的测试结果: 也快得太夸张了MacOS X 10.4 Tiger, Intel CoreDuo 1.83GHz, Memory 2GB Language Template Engine Test#1(sec) Test#2(sec) Python(2.5.1)pyTenjin (0.6.1)6.965.61Cheetah (2.0)20.3619.82Django 阅读全文

posted @ 2009-03-22 12:52 MK2 阅读(3761) 评论(2) 推荐(0)

Firefox插件备忘录
摘要:因经常在多台机器上使用Firefox,难免会想装一些已经习惯了的插件(晕,都依赖他们),没安装上总是用起来不顺手。于是就有了这篇文章。 1. 第一个要备忘的肯定是它:Google Browser Sync 可以同步些什么?看看这个截图吧: 很Cool吧,仿佛在那台机打开FF,都感觉是一样的,完全获取回上次的所有状态,并且支持加密传输,这样个人私隐就不会泄露了。 2. GMarks 虽然说Go... 阅读全文

posted @ 2008-06-09 10:49 MK2 阅读(1110) 评论(2) 推荐(0)

当AjaxForm遇上TinyMCE
摘要:在没有使用AjaxForm前,我做的一个小小的评论提交的Web form,评论内容使用了TinyMCE做文本编辑。为了增加一点点的用户体验,就顺手拿AjaxForm来实现Ajax提交。可是发现出现了一个意外的事情。就是每次提交,第一次提交时,AjaxForm会无法获得当前编辑的评论内容,即TextArea里面的内容,要再点击一次提交,才能将TextArea的内容提交上去。 关键是TinyMCE上的... 阅读全文

posted @ 2008-06-08 20:38 MK2 阅读(2230) 评论(6) 推荐(0)

让Fiddler调试localhost和127.0.0.1
摘要:今天看到Lulu的闪存问到Cookie的问题,然后引发更多问题,突然想到昨晚使用Fiddler调试是否使用gzip压缩时,发现IE7下的localhost无法被捕获了。呵呵,然后就直接搜索了“Fiddler localhost”,找到了原因。 以下引用至:http://www.fiddlertool.com/Fiddler/help/knownissues.asp I don't see IE... 阅读全文

posted @ 2008-03-31 16:25 MK2 阅读(5785) 评论(3) 推荐(0)

用户输入提交前必须进行的几项工作
摘要:1. 验证用户输入; 2. 转化必要的字符,避免脚本攻击; 3. 防止用户估计禁止掉浏览器中的Javascript进行提交。 4. 防止用户恶意频繁输入。 5. 防止广告机器人。 6. asp.net Ajax访问页面静态方法或WebService时,要注意是否需要进行身份验证。 [WebMethod] public static bool Del... 阅读全文

posted @ 2008-03-28 17:40 MK2 阅读(460) 评论(0) 推荐(0)

在解决动态切换皮肤的子域名Cookie保存问题过程中收集的一些参考资料
摘要:昨天对自己的Blog添加动态更换皮肤功能时,还有一个问题没解决,就是子域名共享Cookie。例如我访问Blog的子域名是: fengmk2.cnblogs.com, 而页面很多链接的是在www.cnblogs.com/fengmk2/下进行访问的,而皮肤的设置保存在cookie中,导致访问两域名时,皮肤显示不同。今天搜索了一下博客园,发现Dudu已经给出了完全的解决方法。 解决方法:"将cookie关联的域设置为".domain.ext", 博客园的设置就是.cnblogs.com。" 我使用jQuery的cookie插件,修改相应的操作就解决了。 阅读全文

posted @ 2007-12-29 20:04 MK2 阅读(497) 评论(0) 推荐(0)

方便我们计算学分绩点的JavaScript
摘要:基于目前我们学校教务处的管理系统, 依靠Javascript的帮忙, 我们可以很方便地计算成绩. 阅读全文

posted @ 2007-09-05 22:33 MK2 阅读(1065) 评论(2) 推荐(0)

为GirdView添加鼠标移动样式及删除确认
摘要:注意,我使用了ScriptManager.RegisterClientScriptBlock,若你没有使用Asp.net Ajax,请改为ClientScript.RegisterClientScriptBlock() ,因为ClientScript.RegisterClientScriptBlock()在使用了ScriptManager时会失效的。 阅读全文

posted @ 2007-08-12 22:04 MK2 阅读(649) 评论(1) 推荐(0)

TinyMCE's plugins: Ajax File Manager .Net for BlogEngine.Net
摘要:因为TinyMCE的FileManager是收费的, 所以自己就专门为BlogEngine.net写了一个FileManger插件. 详细可查看: http://mk2.net4.com.cn/page/TinyMCE's-plugins-Ajax-File-Manager-Net-for-BlogEngineNet.aspx 效果图 阅读全文

posted @ 2007-07-17 22:13 MK2 阅读(893) 评论(2) 推荐(0)