【css】屏蔽谷歌浏览器中input获得焦点时边框为橘红色

在谷歌浏览器中,当在input输入框中输入内容时,就会出现橘红色的边框。也就是说input获得焦点边框就会成橘红色。如何来屏蔽它? 先看下如下截图: 可以通过css来修改outline属性即可,请看代码: .class(自定义样式):focus { outline: none;}

【技术新闻】每位开发人员都应铭记的10句编程谚语

所谓谚语,就是用言简意赅、通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情。也正因如此,我才整理了10句编程谚语,每位开发人员都应该铭记他们,武装自己。 1. 无风不起浪 别紧张,这也许只是一场消防演习   代码设计是否糟糕,从某些地方就可以看出来。比如: a. 超大类或超大函数 b. 大片被注释的代码 c. 逻辑重复 d. If/else嵌套过深 程序员们通常称它们作代码异味(Code Smell),但是就我个人认为“代码警报”这个名字更为合适一些,因为它有更高的紧迫感的含义。根本问题处理不当,终将引火烧身。 译注:Code Smell中文译名一般为“代码异味”,或“代码味道”,它是提示代码中某个地方存在错误的一个暗示,开发人员可以通过这种smell(异味)在代码中追捕到问题。 2. 预防为主,治疗为辅 好吧,我相信了! 20世纪80年代,丰田公司的流水作业线因为它在缺陷预防方法上的革新变得出了名的高效。每个发现自己的部门有问题的成员都有权暂停生产。这个方法意在宁可发现问题后马上暂定生产、解决问题,也不能由其继续生产而导致更棘手且更高代价的修复/更换/召回后的问题。 程序员总会做出生产率就等同于快速编码的错误臆断。许多程序员都会不假思索地直接着手代码设计。可惜,这种Leeroy Jenkins式鲁莽的做法多会导致软件的开发过程变得很邋遢,拙劣的代码需要不断的监测和修改——也可能会被彻底地替换。最终,生产率所涉及到的因素就 不仅仅是写代码所消耗的时间了,还要有调试的时间。稍不留神就会“捡了芝麻丢了西瓜”。(因小失大。) 译注:Leeroy Jenkins 行为:WOW游戏中一位玩家不顾大家独身一人迎敌,导致灭团。 3. 不要孤注一掷 (过度依赖某人) 一个软件开发团队的公共要素(bus factor)是指那些会影响整个项目进程的核心开发人员的总数。比如某人被车撞了或某人生孩子或某人跳槽了,项目可能就会无序,甚至会搁置。 译注: bus factor 即指公共要素,比喻了开发过程中的一些共同因素。如果挤上 bus 的 factor 越多,bus 就越不稳定,所以要控制好 bus factor ,以免问题发生。 换句话说,如果你的团队突然失去了一个主力成员,你会怎么办?业务依旧进行还是戛然而止? 很不幸,大多数软件团队都陷入了后一种情况。这些团队把他们的开发员培养成了只会处理他们自己专业领域的“领域专家”。起初,这看起来是一个比较合理的方法。它 对汽车制造装配生产线很适用,但是为什么对软件开发团队就不行呢?毕竟,想让每个成员都掌握所编程序的细微差别也不太可能,对吧? 问题是开发人员不容易轻易替换掉。虽然当每位成员都可用时,“抽屉方法”很有效,但如果当“领域专家”突然因人事变动、疾病或突发事故而无法工作时,抽屉 方法立马土崩瓦解。(所以,)软件团队有一些看似多余实则重要的后备力量是至关重要。代码复查、结对编程和共有代码可用成功营造一个环境,在这个环境中, 每位开发人员至少表面上是熟悉自己非擅长领域之外的系统部分。 4. 种瓜得瓜,种豆得豆 《The Pragmatic Programmer … Continue reading “【技术新闻】每位开发人员都应铭记的10句编程谚语”

【wordpress】开启Gzip压缩

最近博客打开的速度特慢,本来一直以为是服务器的问题,最后在站长工具中查询了下,发现没有开启Gzip压缩功能。原来Gzip压缩之后也可以提速。学习了,先看下如何来设置开启Gzip压缩. 1. 通过修改index.php文件开启Gzip压缩 在根目录下的index.php 中找到: define(’WP_USE_THEMES’, true); 在后面加上: ob_start(‘ob_gzhandler’); 这样就可以开启。 2. 通过.htaccess启用Gzip压缩 <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif A2592000 ExpiresByType image/jpeg A2592000 ExpiresByType image/png A2592000 ExpiresByType image/x-icon A2592000 ExpiresByType application/x-javascript A604800 ExpiresByType text/css A604800 </IfModule> <IfModule mod_deflate.c> SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png application/x-javascript </IfModule> 3. 通过php.ini 启用Gzip压缩 在php.ini中增加以下代码来开启gzip。 zlib.output_compression_level = number 其中number为1—9的值,1的压缩比率最低, 建议取5。 4. 安装gzippy插件开启Gzip压缩 … Continue reading “【wordpress】开启Gzip压缩”

【JQuery】网站如何做到完全不需要jQuery

jQuery是现在最流行的JavaScript工具库。 据统计,目前全世界57.3%的网站使用它。也就是说,10个网站里面,有6个使用jQuery。如果只考察使用工具库的网站,这个比例就会上升到惊人的91.7%。 虽然jQuery如此受欢迎,但是它臃肿的体积也让人头痛不已。jQuery 2.0的原始大小为235KB,优化后为81KB;如果是支持IE6、7、8的jQuery 1.8.3,原始大小为261KB,优化后为91KB。 这样的体积,即使是宽带环境,完全加载也需要1秒或更长,更不要说移动设备了。这意味着,如果你使用了jQuery,用户至少延迟1秒,才能看到网页效果。考虑到本质上,jQuery只是一个操作DOM的工具,我们不仅要问:如果只是为了几个网页特效,是否有必要动用这么大的库? 2006年,jQuery诞生的时候,主要用于消除不同浏览器的差异(主要是IE6),为开发者提供一个简洁的统一接口。相比当时,如今的情况已经发生了很大的变化。IE的市场份额不断下降,以ECMAScript为基础的JavaScript标准语法,正得到越来越广泛的支持。开发者直接使用JavScript标准语法,就能同时在各大浏览器运行,不再需要通过jQuery获取兼容性。 下面就探讨如何用JavaScript标准语法,取代jQuery的一些主要功能,做到jQuery-free。 一、选取DOM元素 jQuery的核心是通过各种选择器,选中DOM元素,可以用querySelectorAll方法模拟这个功能。 var $ = document.querySelectorAll.bind(document); 这里需要注意的是,querySelectorAll方法返回的是NodeList对象,它很像数组(有数字索引和length属性),但不是数组,不能使用pop、push等数组特有方法。如果有需要,可以考虑将Nodelist对象转为数组。 myList = Array.prototype.slice.call(myNodeList); 二、DOM操作 DOM本身就具有很丰富的操作方法,可以取代jQuery提供的操作方法。 尾部追加DOM元素。 // jQuery写法 $(parent).append($(child)); // DOM写法 parent.appendChild(child) 头部插入DOM元素。 // jQuery写法 $(parent).prepend($(child)); // DOM写法 parent.insertBefore(child, parent.childNodes[0]); 删除DOM元素。 // jQuery写法 $(child).remove(); // DOM写法 child.parentNode.removeChild(child); 三、事件的监听 jQuery的on方法,完全可以用addEventListener模拟。 Element.prototype.on = Element.prototype.addEventListener; 为了使用方便,可以在NodeList对象上也部署这个方法。 NodeList.prototype.on = function (event, fn) { [][‘forEach’].call(this, … Continue reading “【JQuery】网站如何做到完全不需要jQuery”

【php】获得XML格式的RSS数据

RSS订阅功能一直想研究下,想了解下RSS订阅的数据是如何展示的?结果一查看自己的技术博客订阅功能代码,发现是用XML格式来展示的,于是就想如何获得每一条数据的标题、链接、时间…于是自己就写了一个函数来实现,测试OK。请看代码: /**获得XML格式的RSS数据; * RSS链接; * 返回值为二维数组,如果失败为null. */ private function get_rssData($url){ $fp = fopen($url,"r"); while ( !feof($fp) ) { $buff .= fgets($fp,4096); } fclose($fp); //建立一个 XML 解析器 $parser = xml_parser_create(); //xml_parser_set_option — 为指定 XML 解析进行选项设置 xml_parser_set_option( $parser, XML_OPTION_CASE_FOLDING, 0 ); xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); //xml_parse_into_struct — 将 XML 数据解析到数组$values中 xml_parse_into_struct($parser,$buff,$values); //xml_parser_free — 释放指定的 XML 解析器 xml_parser_free($parser); $is_item = 0; … Continue reading “【php】获得XML格式的RSS数据”

【技术排行榜】2013年5月编程语言排行榜:UNIX下的Bash

2013年5月9日,Tiobe公司发布新一期编程语言排行榜。新一期榜单前10位没有太多的变化,只是Objective-C与C++,Ruby与JavsScript在互相交换位置罢了。今天我们要关注的是排在TOP 20后半部的一门语言——Bash。 大家先请看本期TOP20榜单 从2013年4月的编程语言排行榜我们惊异的发现Bash这门UNIX下的壳语言,竟然有了飞速的上升。从第34位最高上升到第13位。究竟这门语言有什么独特之处? Bash的诞生 Bash这个单词的来源十分晦涩,它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。 Bash语言之父Stephen R. Bourne Bash是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。 Bash是Linux的敲门砖,如果不懂Bash那其他东西就不用学习了。Linux透过终端下达指令,都是通过Bash来执行。 Bash语法 用vi编辑器编辑一个hello文件如下: #!/bin/bash # This is a very simple example echo Hello World 这样最简单的一个 BASH 程序就编写完了。这里有几个问题需要说明一下: 一,第一行的 #! 是什么意思 二,第一行的 /bin/bash 又是什么意思 三,第二行是注释吗  四,echo 语句 如何执行该程序呢?有两种方法:一种是显式制定 BASH 去执行: $ bash hello 或$ … Continue reading “【技术排行榜】2013年5月编程语言排行榜:UNIX下的Bash”

【thinkphp】模板的使用技巧

一、模板包含 <include file="完整模板文件名" /> <include file="./Tpl/default/Public/header.html" /> <include file="read" /> <include file="Public:header" /> <include file="blue:User:read" /> <include file="$tplName" /> <include file="header" title="ThinkPHP框架"keywords="开源WEB开发框架"/> 在模板中变量用[变量]接受 <include file='file1,file2' />   二、模板渲染 1、自动开启模板渲染 设置配置文件 'LAYOUT_ON'=>true,//开启模板渲染 准备一个模板渲染页面,在页面中使用{__CONTENT__}接受具体模板页面的内容 如果在摸一个具体模板中不希望使用渲染模板,可以在页首添加{__NOCONTENT__} 2、不开启自动模板渲染可以在每一个具体页面的页首添加 <layout name='layout'/> 3.使用技巧 在渲染模板文件中也可以使用其他模板文件的内容 <include file='Public:header'/> <body> <p>这里是渲染页面!!!</p> {__CONTENT__} </body> </html>   三、模板的继承

【thinkphp】模板中的基本语法

一、导入CSS和JS文件 1、css link js scr <link rel='stylesheet' type='text/css' href='__PUBLIC__/Css/test.css'/> <script src='__PUBLIC__/Js/test.js'></script> 2.import <import type='js' file='Js.test' /> //导入Public文件夹下面的Js目录中的test.js文件,import标签可以省略type属性,默认就是js的 <import type='css' file='Css.test' /> //可以更改默认文件夹 设置basepath属性 <import type='js' file='Js.my' basepath='./Other'/> 3.load //方法可以自动检测导入的文件类型 <load href='__PUBLIC__/Js/test.js' />   二、分支结构 1、if <if condition='$sex eq "男"'> 男人是泥巴做的 <else /> 女人是水做的 </if> <if condition='$age lt 18'> 未成年 <elseif condition='$age eq 18'/> 青春年少 <else … Continue reading “【thinkphp】模板中的基本语法”

【thinkphp】模板中的变量

一、变量输出 1.标量输出 2.数组输出 {$name[1]} {$name[‘k2’]} {$name.k1} 3.对象输出 {$name:k} {$name->k} 二、系统变量 {$Think.get.id} 三、使用函数 {$name|strtoupper} 生成的编译后文件是 <?php echo (strtoupper($name)); ?> {$name|date='Y m d H:i:s',###} 四、默认值 {$name|default='这里是默认值'} 五、运算符 + – * / % ++ — {$name++}

【thinkphp】视图介绍

一、模板的使用   a、规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl) 更换模板文件的后缀名(修改配置文件) 'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件后缀名 b、修改模板文件目录层次 'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次 c、模板主题 'DEFAULT_THEME'=>'your',//设置默认模板主题 需要在TPL下面新建一个your文件夹作为模板主题文件夹 如何动态修改模板主题? 1、在后台准备一个功能,修改config.php文件中的默认模板项 2、通过url传递 t=主题 参数可以修改不同的模板 'DEFAULT_THEME'=>'your',//设置默认模板主题 'TMPL_DETECT_THEME'=>true,//自动侦测模板主题 'THEME_LIST'=>'your,my',//支持的模板主题列表 二、输出模板内容  a、display 1.display中没有参数 $this->display(); 2.可以带参数 $this->display(本模块文件夹下的其他模板文件); $this->display('index2'); $this->display(其他文件夹下的模板文件); $this->display('Public:error');//注意,仅仅需要在Tpl下有Public文件夹以及其中的error.html即可,不需要一定有Public模块 $this->display(其他主题下的 文件夹下的 模板文件);//需要开启主题支持 $this->display('my:Index:index'); $this->display(一个url路径); $this->display('./Public/error.html'); $this->display('./Public/error.html','utf-8','text/xml'); $this->show($content); 3.fetch方法 获得模板文件中的内容,以字符串形式返回 $content=$this->fetch('Public:error'); 4.show方法 不需要模板文件,可以直接输出模板内容 $content=$this->fetch('Public:error'); dump($content); $content=str_replace('h1','i',$content); $this->show($content); 三、模板中的赋值   //$this->assign('name','赵桐正'); $this->name='赵桐正2'; $this->display(); 四、模板替换  __PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/ __ROOT__: … Continue reading “【thinkphp】视图介绍”