用JavaScript读取和保存文件

标签:JavaScript

话说今天只是粗略浏览了一下Proxy SwitchySharp的源码,就收获了不少东西,其中就包括本文要介绍的读取和保存文件。
因为Google还不提供同步插件数据的功能,所以导入和导出插件配置就必须和文件打交道了。而出于安全原因,只有IE才提供访问文件的API;但随着HTML 5的到来,其他浏览器也纷纷支持了。

字符串相加并不慢

标签:Python, 性能, JavaScript, Java

在学Java时,我对拼接字符串有个很深刻的印象:StringBuilder.append()比String相加要快很多。
这个偏见影响了我几年,直到今天才发现它并不一定适用于其他语言。

为什么遵循W3C标准极其重要?

标签:JavaScript

公司里一个IE only的项目里遇到个bug,有的测试人员遇到了,而作为开发人员的我却没遇到。我查了1天也没找出原因,倒是发现其中混杂着各种风格的代码。
以根据id获取DOM元素为例,我就找到4种方式:
  1. document.getElementById(elementId):W3C标准。
  2. document.all[elementId]或document.all.elementId:这个方法会返回id或name为elementId的元素(或元素数组)。IE、Chrome和Opera支持,Firefox不支持。
  3. window[elementId]或window.elementId:DOM元素会根据其id生成一个全局变量。IE、Chrome和Opera支持,Firefox不支持。
  4. eval(elementId, window):同上。IE、Chrome和Opera支持,Firefox不支持。

Google Cloud SQL发布

标签:Google Cloud SQL, Google App Engine

今天一觉起来,发现Google Cloud SQL发布了。
这一产品对Google App Engine来说意义重大,因为终于可以使用关系型数据库了,可以join了,可以无限制地使用事务了,对索引和字段有更多的控制了,可以运用自己早已掌握的关系数据库理论知识和经验了。
而和Datastore一样,Google Cloud SQL也无需开发者维护。
同时,它还是个web服务。尽管目前还只能通过Google App Engine和一些工具来访问,但未来可能对外提供REST接口。
值得一提的是,目前它还处于Limited Preview阶段,在2011年是完全免费的,并且在收费前会提前30天通知。

Tornado的IOStream简介与应用

标签:Python

Tornado的核心源码是由ioloop.py和iostream.py这2个文件组成的。前者提供了一个循环,用于处理I/O事件;后者则封装了一个非阻塞的socket。
有了这2者后,就能搭建起TCP server和HTTP server,实现异步HTTP客户端,这便是Tornado的主要内容了。
之前在研究socket时已差不多弄懂了ioloop的逻辑,于是本文就接着研究iostream了。

用Tornado打造WebSocket与Ajax Long-Polling自适应聊天室

标签:Python, AJAX

这几天忙着研究Tornado,想着总得学以致用吧,于是就决定做个聊天室玩玩。
实际上在Tornado的源码里就有chat和websocket这2个聊天室的demo,分别采用Ajax Long-Polling和WebSocket技术构建。
而我要实现的则很简单:将这2种技术融合在一起。

« 看看还有什么好玩意