2013-11-30 veryyoung
赶到某浏览器公司第一件事就是做一套笔试题,笔试题有三题,这里说说第一题 第一题是二叉树非递归层次遍历 用队列实现,代码如下: static void levelorder(Node p) { if (p == null) return; Queue queue = new LinkedList(); queue.offer(p); while (queue.size() > 0) { Node temp = queue.poll(); visit(temp); if (temp.getLeft() != null) { queu 继续阅读 »
2016-06-28 Alex Sun
一、引言 最早接触爬虫,是发现了一个叫做『豆瓣妹子』的网站,写了一个简单的程序可以批量下载图片。后来陆陆续续抓取过豆瓣电影,Google+,facejoking等网站。毕设的选题也是抓取新浪微博,然后分析博文的传播情况。最近一直对知乎的数据感兴趣,于是开发了Node模块zhihu-api,用于简化数据的抓取。 通常来说,所谓的爬虫,无非是通过程序来发送HTTP请求。因此理论上来说,所有浏览器能访问到的内容,都是可以通过爬虫来进行抓取的。 一般而言,我们所感兴趣的信息,只是页面中的某一部分数据,例如:某个标签的文本、链接地址、图片地址等。有些网站会提供开放的API(往往也会有很多限制),这时只需要直接请求该API,就可以拿到比较 继续阅读 »
2014-07-03 jude
浏览器中的javascript引擎是单线程的,如果在setTimeout设定的时间到达时,javascript引擎还在处理另外的代码,那么setTimeout设定的事件就只有排队等待了。所以一般来说setTimeout设定的时间都是不准确的,会比设定的晚。就算setTimeout时间设定为0,也不一定马上执行,这样设定是把想执行的函数放在javascript引擎执行队列的末尾。 继续阅读 »
2016-11-18 YongHao Hu
go
命令行终端里,使用set -o vi, 用vim来操作终端的输入, 估计比终端要提供的emacs快捷键爽多了; 使用MacBook自不用说, 配合iterm2, jitouch, Alfred等 jitouch配合mac触摸板, 比鼠标好用n倍. 自定义单击,一手固定另一只手指轻拍, 左右拍等操作.我通常是One-Fix Left-Tap是浏览器的previous tab, right tab则是next tab, 还有配置了关标签页, 新开标签页的手势; 用Keyboard Maestro改键, ctrl+command+i是iterm, +c是chrome, +h是左窗口, +r是右窗口; 用paste软件记录所有剪贴板记录, 继续阅读 »
2018-05-17 jude
问题 在之前介绍 fiddler 使用技巧的文章中,我提到伪造 json 返回响应时,要设置正确的 Content-Length 。 规范定义了在大多数情况要设置 Content-Length ,只有少数情况例外。在浏览器实现上,如果设置了比正确数量要少的 Content-Length ,那么内容会被截断,若比正确数量要多,那么会一直处在等待加载更多内容的状态。 继续阅读 »
2015-01-25 W.Y.
调试 JavaScript 也许是一场噩梦:一些错误非常难理解,并且给出的错误行号并不是总是很有帮助。如果有一个列表,列举这些错误的意思和如何修复它们,将对我们非常有帮助。 本文列举了 JavaScript 中一些奇怪的错误。对于相同的错误不同的浏览器可能给出不同的提示,所以分别给出了不同的例子。 more 如何阅读错误 进入正题之前,我们先快速分析一下错误消息的结构,这对我们理解错误消息非常有用,同时也将有助于你理解那些没有在本文中列举的错误。 Chrome 中一个典型的错误看起来像这样: Uncaught TypeError: undefined is not a function 该错误的结构如下: *Uncau 继续阅读 »
2015-03-02 Lim Geng
兼容性问题一直都是个头疼的问题,以至于很多接触过前端编程大部分人都会说页面太难调了。这篇文章是对常见兼容性问题的记录,有个问题是肯定不全,因为太多了,只是总结常见的兼容性问题 持续更新中。。。 CSS CSS hack大全&详解(什么是CSS hack) css // 区分所有主流浏览器的hack: .element{ color:#000; /*w3c标准*/ [;color:#f00;]; /*Webkit(chrome和safari)*/ color:#666\9; /*IE8*/ *color:#999; 继续阅读 »
2016-07-06 Wenjie Yao
太长不读版   最近自己写了一个Chrome浏览器扩展/插件(github repo),并将其发布到了谷歌官方商店(chrome web store),该插件为github上的仓库提供travis-ci运行状态和运行时间的 图表,你可以直观地了解到哪些仓库(自己或者别人的)开通了travis-ci的build,还可以看到特定repo近十次build的 时间和状态变化,鼠标置于具体build上,还可查看具体build时间和message,点击还可以进入特定的travis-ci build页面。 继续阅读 »
2014-11-03 白若水
window.history Mozilla MDN这样描述:window.history 是一个只读属性,指向 History对象,对操作浏览器的会话历史提交接口。 在 Chrome控制台中查看History 继续阅读 »
2014-11-04 summer
今天系统突然响应慢了很多,所以就考虑对目前的系统进行优化,底层mysql开启慢查询日志的记录,同时使用一些测试的工作对网站的性能进行测试。我们使用chrome浏览器进行分析加载速度的时候发现很多没有注意到的细节,这是我们以后运维需要加强学习的地方。我们发现有很多css和js文件都100多kb,造成资源加载的时候会非常慢,同时使用一些在线工具eg阿里测等进行监测,我们确实有很多工作可以做,例如开启tomcat的gzip压缩。 继续阅读 »