购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

序二

2010年2月,我接到Jason Yan的电话面试,Jason Yan是初创公司Disqus的CTO兼共同创始人。当时,Disqus虽然还是一家小公司,但是具有快速增长的评论应用程序,作为一个第三方脚本分发,并受到众多的博客作者和少数大型媒体公司的欢迎。Jason Yan计划专门聘请一位从事快速增长的客户端代码库的JavaScript工程师。

通用JavaScript面试题常常涉及一系列类、主要类型、作用域等。但是,Jason Yan采取了不同的策略。他问我以下(转述)的问题:“假设我使用了内置函数prototype,方法如Array.prototype.indexOf并将其指定为一个新值,你将如何获得其原值呢?”

我被吓懵了。这是我以前从未见过的一个问题,我也不知道答案。杰森跟我解释说他们无法控制Disqus应用程序的执行环境。在这些环境中,Disqus应用程序依靠的内置属性有时会被覆盖或被改写得支离破碎。

我不打算放弃这个问题。所以在中面时,我打开了浏览器的JavaScript控制台,并开始调试函数原型。在短短几分钟,我有了惊人的发现,发现可以使用JavaScript的delete操作符删除被修改的内置属性,浏览器将恢复原始值。

事实上Jason不知道这个解决方案。他亲自采用该方法进行调试,果然有效。我们对于这个新发现都非常兴奋。我们开始讨论Disqus当前解决这一问题的方法,而面试也从严肃的“审讯”变成兴奋讨论,我们讨论了iframes、浏览器hacks和其他脚本性能等。

当时我并不知道,但那是我第一次感受到第三方JavaScript,感受到解决只有运行在别人的Web环境时客户端应用程序才遇到的问题,感受到一些Web开发人员可能永远不会意识到的技术和实践,我完全被迷住了。

随后又经过几轮面试。两个月后,我加入了Disqus团队,当时是在旧金山,只有7名员工。就是在那儿,我认识了Anton Koval-yov,我的JavaScript新同事和未来的合作者。在接下来两年多的时间里,我和Anton Koval-yov负责维护和开发Disqus的客户端代码。Disqus继续快速增长。到2012年,成千上万的网页安装Disqus,每月页面浏览量超过50亿。其客户包括CNN、MLB、IGN、Time.com、滚石,以及几十个其他的主要网络和媒体公司。

安东和我在这段时间,学会了许多有用的第三方脚本编写的技巧、贴士和hack,其中大部分我们已经吸取了教训,其中有一些我们采取保密策略,因为这是我们的技术优势。

在这本书中,凝聚了我们集体的第三方JavaScript知识。我们认为本书不但能帮助无处不在的第三方脚本开发者,而且也认为我们讨论的做法可能让互联网变得更美好。我们希望通过阅读本书,你会同意我们的观点。

BEN VINEGAR Q0Poz/runcPAWKlKz+YYA4YS0GQ2TyFc9vIVM8JKf8sc023bvBUnPrsNEIO+9tm1

点击中间区域
呼出菜单
上一章
目录
下一章
×