Month: September 2018

Ubuntu: 安装MongoDB, Install MongoDB With Apache2, PHP 7.2 Support On Ubuntu 16.04 / 17.10 / 18.04

Step 1: Install Apache2 HTTP Server  – 安装Apache2,如果已经安装,请略过 命令行安装 sudo apt update sudo apt install apache2 开启和关闭apache2的命令 sudo systemctl stop apache2.service sudo systemctl start apache2.service sudo systemctl enable apache2.service http://localhost 打开后,如果可以显示下图,说明安装成功 Step 2: Add MongoDB Repository 添加 MongoDB 源 sudo apt-key adv --k… Read More

Gmail 中可使用的搜索运算符,Search operators you can use with Gmail

您可以使用被称为搜索运算符的字词或符号来过滤 Gmail 搜索结果,也可以结合使用运算符来进一步过滤搜索结果。   如何使用搜索运算符 转至 Gmail。 在搜索框中输入搜索运算符。   可使用的搜索运算符 提示:您使用搜索运算符执行搜索后,可以利用搜索结果为这些邮件设置过滤器。 搜索条件 搜索运算符和示例 指定发件人 from: 示例:from:amy 指定收件人 to: 示例:to:david 主题行中的字词 subject: 示例:subject:dinner 匹配多个字词的邮件 OR or { } 示例:from:amy OR from:david 示例:{from:amy from:david} 从搜索结果中排除邮件 - 示例:… Read More

Chrome设置断点的各种姿势, js断点调试心得, Chrome DevTools 中调试 JavaScript 入门

在JavaScript代码中设置断点 刚工作时被leader安利了Chrome浏览器,那时一说到调试,就知道这一个操作 以为在行号上单击一下就是打断点,就是会调试了:) 当然这也是最最基本的打断点的方式了,当然了,相较于 调试全靠alert 已经高端很多了。 首先需要打开Devtools切换到Source页签,然后在左侧file navigation中找到我们要设置断点的文件并打开。 在打开的页面上单击对应的行号即可设置断点。 同时也可以通过在行号上右键点击Add breakpoint来设置断点。 当断点触发时,整个页面会处于暂停状态,并会切换到Source页签断点处方便调试,直到终止该断点调试后页面才会继续运… Read More

jQuery事件系统详解

我们习惯理所当然的使用jQuery提供的高级事件API,jQuery帮我们处理了事件注册机制在各个浏览器间的兼容性,帮我们实现了高级的事件委托机制,大大的提高了我们的工作效率;然而我从来都不是一个知其然不知其所以然的工程师,你是否一样?如果你同样对其实现细节感兴趣,请仔细阅读本文。本文不涉及jQuery提供的自定义事件。 我将本文组织为如下结构: 1.使用原生API有什么问题 2.大牛是如何解决的 3.jQuery的实现 1. 使用原生API有什么问题 (1) 最原始的方法是直接对dom元素的onclick、onmouseover等属性赋值一个函数: Element.onclick = function(){ //e… Read More

jQuery: 事件触发器trigger, 事件模型, 默认行为执行顺序, Native click won’t be triggered by jQuery

一般来讲,直接 trigger 一个 a 标签的 click 事件是不被浏览器允许的,正常情况下都是由用户的 click 事件来触发一个「点击动作」,在这个「动作」中,我们可以调用触发其他的 click 事件,就好像用户点在了其他的标签上。按照长期使用 jQuery 的思路,一般就会直接使用下面的方式来触发: $('a').click(); 或者是: $('a').trigger('click'); 很遗憾的是,这样是不行的,jQuery 并不会为 a 标签提供 native click 事件的触发,而我们想要做这件事情就需要用原生的 DOM element 来做: $('a').get(0).click(); 至于为… Read More

原生替代jQuery, You Don’t Need jQuery

前端发展很快,现代浏览器原生 API 已经足够好用。我们并不需要为了操作 DOM、Event 等再学习一下 jQuery 的 API。同时由于 React、Angular、Vue 等框架的流行,直接操作 DOM 不再是好的模式,jQuery 使用场景大大减少。本项目总结了大部分 jQuery API 替代的方法,暂时只支持 IE10 以上浏览器。 Query Selector 常用的 class、id、属性 选择器都可以使用 document.querySelector 或 document.querySelectorAll 替代。区别是 document.querySelector 返回第一个匹配的 Element document.querySel… Read More

单点登录原理与简单实现, 单点登录的三种实现方式

单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性,因此要点也就以下两个: 存储信任 验证信任 如果一个系统做到了开头所讲的效果,也就算单点登录,单点登录有不同的实… Read More

Javascript: 带你一分钟理解JS闭包——通俗易懂

  什么是闭包? 什么是闭包?闭包是什么? 先来看一段代码: function a(){ var n = 0; function inc() { n++; console.log(n); } inc(); inc(); } a(); //控制台输出1,再输出2 再看另一段代码: function a(){ var n = 0; this.inc = function () { n++; console.log(n); }; } var c = new a(); c.inc(); //控制台输出1 c.inc(); //控制台输出2 闭包是什么?以上两段代码就是闭包! 第二段代码中 inc 函数访问了构造函数 a 里面的变量 n,所以形成了一个闭包。 有权访问另一个函数作用域内变量的函数都… Read More

十年程序员用眼告诉你 2018 PHP 不一样

PHP从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js 、GO和Python不断地在挑战PHP的地位。这些技术的推动者非常热衷于唱衰PHP,PHP语言的未来在哪里?PHP程序员当如何应对未来的变革? 作为老牌的Web后端编程语言,PHP在全球市场占有率非常高,仅次于Java,从各个招聘网站的数据上来看PHP开发的职位非常多,薪资水平也非常不错。实际在中小企业、互联网创业公司PHP的市场地位是高于Java的。Java在超大型企业、传统软件行业、金融领域优势更大。目前来看 Node.js、 GO 、 Python 、 Ruby 等语言还难以企及P… Read More

BAT出品的这10个工具,每个都很良心的不得了

  腾讯出品 1:腾讯设计导航 http://idesign.qq.com 腾讯设计导航是腾讯出品的一个良心工具,是腾讯内部设计师使用的设计网站。 它上面精选了很多精品网站,素材网站,包括:图库导航,设计工具导航,字体资源导航等等工具。 2:腾讯智图 https://zhitu.isux.us/ 腾讯智图是腾讯ISUX前端团队出品的一个专门用于图片压缩和图片格式转换的平台,其功能包括针对png,jpeg,gif等各类格式图片的压缩。 3:腾讯AI体验中心 腾讯AI体验中心是腾讯出品的一个黑科技小程序。 它支持很多黑科技功能,它支持身份证OCR,名片OCR,人脸识别,图片特效,图片识别;它支持语音合成,语音… Read More

PHP Google APIs: 获取gmail邮件, php搜索gmail邮件, php gmail api, Gmail to RSS Feed, PHP Google APIs Client Library

用到的工具: Google APIs Client Library for PHP FeedWriter PHP 快速入门 google apis:Google Developers   用法:gmail2rss.php <?php require 'vendor/autoload.php'; // composer 安装项目后,引入 autoload.php define('APPLICATION_NAME', 'Gmail To RSS'); define('CREDENTIALS_PATH', '~/.credentials/gmail-to-rss.json'); define('CLIENT_SECRET_PATH', 'c… Read More

jQuery 插件: 识别浏览器, 判断浏览器类型和版本, browser detection

项目地址:https://github.com/gabceb/jquery-browser-plugin CDN下载:https://cdnjs.cloudflare.com/ajax/libs/jquery-browser/0.1.0/jquery.browser.min.js 用法: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jque… Read More