Month: August 2016

jQuery:从零开始,DIY一个jQuery(2)

在上篇文章我们简单实现了一个 jQuery 的基础结构,不过为了顺应潮流,这次咱把它改为模块化的写法,此举得以有效提升项目的可维护性,因此在后续也将以模块化形式进行持续开发。 模块化开发和编译需要用上 ES6 和 rollup,具体原因和使用方法请参照我之前的《冗余代码都走开——前端模块打包利器 Rollup.js 入门》一文。 本期代码均挂在我的github上,有需要的童鞋自行下载(DIY-A-jQuery-master)。 1. 基本配置 为了让 rollup 得以静态解析模块,从而减少可能存在的冗余代码,我们得用上 ES6 的解构赋值语法,因此得配合 babel 辅助开发。 在目录下我们新建一个 babel 配置“.babelr… Read More

jQuery:从零开始,DIY一个jQuery(1)

从本篇开始会陪大家一起从零开始走一遍 jQuery 的奇妙旅途,在整个系列的实践中,我们会把 jQuery 的主要功能模块都了解和实现一遍。 这会是一段很长的历程,但也会很有意思 —— 作为前端领域的经典之作,jQuery 里有着太多奇思妙想,如果能够深入理解它,对于我们稳固js基础、提升前端大法技能来说大有裨益。 另外,本系列的相关代码均可以从 我的github 上获取到(DIY-A-jQuery-master)。 1. 免 new 实现 我们在使用很多插件的时候,都需要使用 new XXX() 的写法来实例化一个引用: var list = new Slip(document.getElementById('slip'), { //op… Read More

Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别

对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过韦恩图(Venn diagram,可用来表示多个集合之间的逻辑关系)。解释了SQL的Join。我觉得清楚易懂,转过来。 假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同 A表 id name 1 Pirate 2 Monkey 3 Ninja 4 Spaghetti B表 id name 1 Rut… Read More

Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)

传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上查询最新的数据。种这种拉取数据的方式需要很短的时间间隔才能保证数据的精确度,但太短的时间间隔客服端会对服务器在短时间内发送出多个请求。 反转AJAX,就是所谓的长轮询或者COMET。服务器与客服端需要保持一条长时间的请求,它使得服务器在有数据时可以返回消息给客户端。 Comet是一种服务器向页面推送数据的技术,Comet能让信息近乎实时的被推送到页面上。 前端 index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&g… Read More

PHP:ServerPush (Comet推送) 技术的探讨

PHP中Push(推送)技术的探讨  [http://vistaswx.com/blog/article/php-server-push] 随着人们对Web即时应用需求的不断上升,Server Push(推送)技术在聊天、消息提醒尤其是社交网络等方面开始兴起,成为实时应用的数据流核心。这篇日志试图探讨的便是各种适合于PHP的Push的实现方式以及其优劣。 1. 什么是Server Push 想象在聊天应用中,如果使用传统的ajax来承担消息的传入,那么一般是通过每隔一定时间拉取一次信息的方式实现,但是其实这种方式有大量查询是浪费的。聊天等Web应用更需要服务器在特定时间来主动告知前端有新的消息(Push),… Read More

浏览器绑架:曾几何时,喜爱的“百度”成为了“流氓”的代名词?- 移除hao123首页

因为身在国外,很多年没有用过百度了,不用百度已经成为了我的习惯,因为现在的百度已经不是以前的百度,所以”绕开百度”,已然成为我作为程序员恪守的信条! 不过,今天它尽然主动攻击了我,篡改我的主页,删也删不掉,改也改不掉,此时的我只想说 “百度是流氓! 百度是流氓! 百度是流氓!”,重要的事情说三遍,希望谷歌看到能够提高我的权重,O(∩_∩)O哈哈~ 言归正传,如果你的首页总是显示下图,那么恭喜你,百度这个流氓找到你了。 解决方法: 桌面捷径浏览器首页遭绑架 ▼在自己的电脑桌面找浏览器捷径(IE、Chrome、Firefox)→「右键」→「内容」   ▼在目标位置将chrome.ex… Read More

photoshop快捷键大全

备注:这里我们按Windows键盘讲述,如果是MAC用户,请看下面对应键位: Ctrl = Command Alt = Option Delete = Backspace 1、CTRL+SHIFT+单击 (选择多个对象) 【选择工具】非”自动选择“状态下: 1. 按 CTRL + 左键可以选择对象 2. 按 CTRL + SHIFT + 左键可以选择多个对象 注意:【选择工具】的”自动选择“是没有勾选的,如果已经勾选,那么不需要加入Ctrl,直接按Shift来进行多选。 2、CTRL + H (隐藏额外内容) 我们绘制图像经常会用到栅格线、网格线,但有时候为了看效果图,可能需要隐藏它们,这里就可以直接用CTRL+H快速隐藏了,反之,再按一次就会显示… Read More

Linux: 近100个常用命令大全

1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出文件的详细信息 -c 根据ctime排序显示 -t 根据文件修改时间排序 ---color[=WHEN] 用色彩辨别文件类型 WHEN 可以是’never’、’always’或’auto’其中之一 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝色:链接文件 红色闪烁:表示链接的文件有问题 黄色:表示设备文件 灰色:表示其它文件 2.mv [选项] 源文件或目录 目录或多个源文件 | 移动或重命名文件 -b

Linux: terminal 终端生存指南

原文: http://www.codeceo.com/article/linux-terminal-guide.html 完全利用Linux终端处理日常工作并非易事,但其可行性却是不容质疑的。 实现日常功能的各类最佳Linux Shell应用 有没有考虑到利用Linux终端搞定日常生活中的种种需求?告别现代GUI软件,一切以文本形式呈现。其实这并非不可能,皆历史悠久的命令行界面同样拥有大量实用功能可供选择。 利用Linux终端发送邮件 要在终端中发送邮件,我们首先要选择对应工具。很多人推荐mutt与notmuch,二者确实非常强大,但我更偏爱alpine。它不仅效果良好,而且界面设计与Thunderbird… Read More

Linux: 利用 Alpine 在命令行里访问 Gmail

假如你是一个命令行爱好者,我很确信你会使用这个强大的工作环境来执行哪怕是一项日常任务的工具,并为之欢呼,例如从 安排日程 、 管理财务 到 获取 Facebook 、Twitter等任务。(LCTT 译注:阅读本文的另一个前提是,假如你还能访问 Gmail 或者知道 Gmail 是什么的话。) 在这个帖子中,我将为你展示 Linux 命令行的另一个漂亮干练的使用案例:访问 Google 的 Gmail 服务, 为此,我们将使用 Alpine,一个基于 ncurses 的多功能命令行邮件客户端(不要和 Alpine Linux 搞混淆)。我们将在 Alphine 中配置 Gmail 的 IMAP 和 SMTP 设定,通过 Google 的邮件服务器在终端环境中收取和… Read More

Linux: chmod 和 chown用法小结

chmod chmod指令是更改文件读写执行权限的. 文件权限可以通过ls -a或ll来看,在每个文件前有10个字符,第一个是d是文件夹,否则为一划.后面三组rwx,分别是读取,写入和执行的权限; 三组分别是用户自己,同组以及其他人的相应rwx权限. 没有执行权限, 脚本和程序也不能直接跑; 没有写权限,就没法生成和保存文件; 没有读的权限就连访问都难. 一般文件权限是755,下面将介绍. 权限有两种表示方式, rwx方式和数字方式. r权限代表1,w权限代表2,x权限代表4,无权限代表0. rwx权限数字的值累加起来,就是一个用户/组/其余人的相应权限,例如775代表用户和组具有rwx权限,而其他人只有rx权限没有写… Read More

Linux: 系统文件权限总结

原文: http://www.codeceo.com/article/linux-file-permission.html   在 Linux 中最基本的任务之一就是设置文件权限。理解它们是如何实现的是你进入 Linux 世界的第一步。如您所料,这一基本操作在类 UNIX 操作系统中大同小异。实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(甚至使用许多相同的工具)。 但不要以为理解文件权限需要长时间的学习。事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们。 基础概念 你要明白的第一件事是文件权限可以用来干什么。当你设置一个分组的权限时发生了什么?让我们将其展开来说,这个概念就真… Read More

Linux: 系统结构详解

原文: http://www.codeceo.com/article/linux-system.html Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。 1. linux内核 内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。如图: 图1  系统调用接口:SCI 层提供了某些机制执行从用户空间… Read More