无聊做了个grunt插件,解决ttf转成base64和其他各种格式的问题

使用font-face来制作web ico已经有一段时间了,关于这种技术方案的实现方式和优缺点不再赘述。下面主要说一下两个常见的问题: 1.各浏览器对字体格式的支持程度不一; 所以为了兼容不同的浏览器,我们就需要这样写代码: @font-face { font-family: 'YourWebFontName'; src: url('YourWebFontName.eot'); /* IE9 Compat Modes */ src: url('YourWebFontName.eot?#iefix') format('embedded-o...

检测font-face是否加载成功

用font-face实现web中的图标 首先赘述一下font-face@1.1,它允许开发者在网页中使用自定义的字体。通过自定义字体,你可以让网页中的"A",变成任何东西。bootstrap3中就使用这一特性来实现网页中的图标。 这样做有几个好处: 更容易实现点击态,切换各种状态只需要改变文字的样式即可,如果使用图片,则需要切两套或者更多的资源。 矢量,可以自由缩放 更容易编码和维护 当然它也有几个坏处: 字体文件是异步加载的,会...

不刷新实现浏览器的前进后退

最近在学习backbone,学习理解backbone就要先理解spa,理解spa就要先了解单页面应用是如何做到页面不刷新改变url的。 相较于不同页面的跳转,AJAX可以说大大提高了用户的浏览体验,不用看到页面切换之间的白屏是件很惬意的事情。但是很多早先的AJAX应用是不支持浏览器的前进后退的,这导致了用户不管在网站里浏览到何处,一旦刷新就会立刻回到起初的位置,并且用户也无法通过浏览器的前进后退按钮来实现浏览历史的切换。 对于...

require.js实战

预备知识 CommonJS 要学习require.js就不得不先了解CommonJS和AMD规范。 CommonJS API定义很多普通应用程序(主要在服务器端)使用的API,它的终极目标是提供一个类似Python,Ruby和Java标准库。 在CommonJS Modules/1.1.1规范里,定义了构建 CommonJS 模块系统所需要的最小特性: module 拥有 id, uri 属性;在 module 中,有 require, exports, module 三个自由变量; module 可通过 require 引入外部 module. 通过 exp...

学习笔记-js发布/订阅模式的简单实现

上次研究观察者模式,很多文章说它也叫Subscribe/Publish(发布/订阅模式)。可在《Javascript设计模式》一书中,这两种模式还是有些区别的。书中原话如下: Observer模式要求希望接收到主题通知者的观察者必须订阅内容改变的事件 Subscribe/Publish模式使用了一个主题/事件通道,这个通道介于订阅者和发布者之间。该事件系统允许代码定义应用程序的特定事件,该事件可以传递自定义参数,自定义参数包含订阅者所需要的值。其目...

学习笔记 – 观察者模式在ruby、js、php中的最简易实现

面试被问及到js中的观察者模式,这玩意儿早就了解过,可以说是动态语言中非常有用的一个设计模式,非常惭愧的没有系统的研究过。不过没关系,哪里不会补哪里,立刻动手,用所会的语言都实现一遍。 观察者模式 关于观察者模式,《松本行弘的程序世界》讲的非常清楚:观察者模式是当某个对象状态发生变化时,依存于该状态的全部对象自动得到通知,被观察者和观察者们是一对多的关系。书中还举了一个非常易懂的例子:获取系统当...

写了websocket个聊天室,然后终于弄懂了php的socket

经朋友推荐去一家手游公司面试,原谅我不厚道的只是好奇手游公司到底是啥样的才去的。工作虽然没找到,但是跟他们的技术总监套近乎聊了几乎一晚上,受益良多,知道了运营多个手游大体需要的技术,当然还是厚道的不爆料了。面试中被问及socket和多线程编程,对这两个知识点完全是空白,回来果断开始研究。还是那句话,不懂裁缝的厨师不是好司机。何况这两个知识也在前端开发的范畴之内。 对我来说最快的学习途径是实践,所以找...