Author: Gideon

canvas保存为data:image扩展功能的实现

【已知】 canvas提供了toDataURL的接口,可以方便的将canvas画布转化成base64编码的image。目前支持的最好的是png格式,jpeg格式的现代浏览器基本也支持,但是支持的不是很好。 【想要的】 往往这么简单直接的接口通常都满足不了需求。我想要的不仅是简单的通过画布生成一个png,我不想新开一个tab,然后还要右键另存为… 我还需要更方便的自由的配置生成的图片的大小,比例等。 另外如果我还要别的图片格式,比如位图bmp,gif等怎么办… 【解决办法】 a)想直接把图片生成后download到本地,其实办法也很简单。直接改图片的mimeType,强制改成steam… Read More

Swift中文教程(二十三) 高级运算符

除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和Objective-C中的位运算符和移位运算。   不同于C语言中的数值计算,Swift的数值计算默认是不可溢出的。溢出行为会被捕获并报告为错误。你是故意的?好吧,你可以使用Swift为你准备的另一套默认允许溢出的数值运算符,如可溢出加&+。所有允许溢出的运算符都是以&开始的。   自定义的结构,类和枚举,是否可以使用标准的运算符来定义操作?当然可以!在Swift中,你可以为你创建的所有类型定制运算符的操作。   可定制的运算符并不限于那些预设的运算符,自定义有个性的中置,前置,后置… Read More

用CSS美化你的滚动条

本文将会告诉你如何用CSS修改/美化浏览器页面上出现的滚动条。改变它们的颜色,调整它们的外形,适配你对页面UI设计。我们首先将会看看谷歌(Webkit)浏览器提供了哪些CSS属性,最后,还将介绍如何用jQuery支持其它类型的浏览器。 各种浏览器对CSS滚动条的支持情况 这里说的Webkit浏览器包括谷歌浏览器,苹果公司的Safari浏览器,以及最新的Opera浏览器。这些浏览器加起来占有超过半数的桌面浏览 器市场份额。对于移动端浏览器,基本上是谷歌浏览器和Safari浏览器的天下。唯一的遗憾是火狐浏览器,至今没有对CSS滚动条属性做任何的改进。至于 IE浏览器,我们期待吧。 鉴于目前浏览器市场的格局,… Read More

Genymotion – 强大好用高性能的 Android 模拟器 (在电脑流畅运行APK安卓软件游戏的利器)

随着 Android 系统的应用和游戏越来越丰富,甚至有些比起Windows、Mac上的软件更加好用好玩,因此很多人都希望能在电脑上也能玩到安卓的游戏或APP。 我们曾推荐过 BlueStacks,而 Genymotion 则是另一款更加优秀专业高性能的安卓 Android 模拟器!它支持 Windows、Mac、Linux,由于其模拟运行速度很快画面流畅、且支持 OpenGL 3D 加速、多开、全屏等特性,并提供 Eclipse、IntelliJ IDEA 的开发插件,不仅是开发者们也是普通玩家们测试和运行 Android 软件/游戏的利器…… 在电脑上玩转 Android 系统的游戏和软件 —— Genymotion 快到极致的模… Read More

Firefox搜索框:自动出现添加搜索的提示

在header里面添加以下代码: <link rel="search" type="application/opensearchdescription+xml" title="iKeepStudying" href="http://justcode.ikeepstudying.com/iks.xml" /> 其中,标签“title”将会出现在图片中2的位置。 http://justcode.ikeepstudying.com/iks.xml 代码是 <?xml version="1.0" encoding="utf-8" ?> <SearchPlugin xmlns="http://www.m… Read More

PHP如何解决网站大流量与高并发

首先,确认服务器硬件是否足够支持当前的流量。 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻底解决性能问题。 其次,优化数据库访问。 前台实现完全的静态化当然最好,可以完全不用访问数据库,不过对于频繁更新的网站, 静态化往往不能满足某些功能。 缓存技术就是另一个解决方案,就是将动态数据存储到缓存文件中,动态网页直接调用这些文件,而不必再访问数据库,WordPress和Z-Blog都大量使用这种缓存技术。 如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL.避免使用 Select * from这… Read More

如何防止网站关键数据被人恶意采集

昨天晚上花了几个小时用Jsoup写了一个网站采集器,帮一个高中同学采集了一个工业信息门户上的芯片待售信息。网站上显示的数据多达60w+条, 我写的程序跑了7个小时只采集了一半,算是可以交差了。 这已经是我第二次写这种采集器了。之前在做波菜网的时候,写过一个更复杂的。当时网站上线以后苦于没有原生态的内容,我就写了一个采集器从“百度身边”采集各大城市的餐馆和菜品信息,并通过google地图的接口获取餐馆的地理位置,然后转存到我们自己的网站上。 我必须承认,做这些事儿都是不光彩的,属于不劳而获,弄不好还得背上法律责任。但是在国内这个互联网的环境下,这种小规模的数据采集想上升到法律层面去禁止,还是不切实际的… Read More

jQuery模拟原生态App上拉刷新下拉加载效果代码

以下任意均可: 1. jQuery模拟原生态App上拉刷新下拉加载效果代码,鼠标上拉时会显示loading字样,并且会模拟加载一条静态数据,支持触屏设备使用。 DEMO:http://sources.ikeepstudying.com/drop-more/ 下载:jQuery模拟原生态App上拉刷新下拉加载效果代码   2.  jquery iscroll上拉 下拉加载内容 DEMO:http://sources.ikeepstudying.com/cubiq-iscroll/ 下载:jquery-iscroll  | 简约版: cubiq-iscroll   3. 移动端下拉刷新、上拉加载更多 Zept… Read More

重新拎一遍js的正则表达式

前言 js的正则表达式是前端中比较重要的部分,加入你要去面试,正则的题目必不可少。我之前的这篇文章中提及过。具体可以看:http://www.haorooms.com/post/qianduan_mianshi 正则表达式规则 一、普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是”普通字符”。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 举例: 表达式 “o”,在匹配字符串 “haorooms” 时,匹配结果是:成功;匹配到的内容是:”o”;匹配到的位置是:开始于… Read More

js网页顶部线性页面加载进度条,jquery头部线性进度条总结

前言 网页顶部加载进度条,近年来很流行,很多网站都采用了这种加载方式。网上也有这样类似的插件,今天我们总结一下网页顶部线性页面加载进度条。 头部LoadingBar线性进度条总结 上面的代码只是静态效果,没有和网页加载联系在一起,要和网页加载联系在一起,今天推荐几个插件。 插件一:LoadingBar LoadingBar.js的地址是:http://www.onextrapixel.com/2013/09/02/loadingbar-js-adding-a-youtube-like-loading-bar-to-your-website/ 用ajax方式读取页面内容,然后加载。 插件二:NProgress… Read More

jquery判断页面滚动条(scroll)是上滚还是下滚,且是否滚动到头部或者底部

webtouch(webapp)页面,防苹果手机safari浏览器,网上滑动,底部导航消失,滑动到底部又出现。向下滑动,底部导航出现。 遇到问题 1、我一开始用swipeup和swipedown来做,发现因为有滚动条,不会触发。因此只能判断滚动条是上滚下滚等。关于手机手势,后面的文章会介绍,欢迎关注! 2、通过上滚下滚来让底部导航显示或者因此,安卓上面的浏览器都可以,但是苹果safari会一闪一闪,原因是苹果safari自动有个弹跳效果,导致事件重复执行,解决办法是给上滚下滚一个距离,滚动到一定距离后返回是上滚还是下滚。 单纯判断滚动条方向 function scroll( fn ) { var beforeScr… Read More

读取二维码 How to decode QR code ( HTML5 QR Code Reader )

Description This is a cross platform jQuery library to create a QRcode reader for HTML5 compatible browser. The decoder used for the QRcode reading is from LazarSoft https://github.com/LazarSoft/jsqrcode Demo See a demo here http://dwa012.github.io/html5-qrcode/ Usage Include html5_qrcode.min.js in the lib directory. Create a basic <div>… Read More