<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CodingDoubleB的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CodingDoubleB</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CodingDoubleB]]></copyright><item><title><![CDATA[浏览器的重绘与重排]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50375032</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50375032</guid><author>CodingDoubleB</author><pubDate>Mon, 21 Dec 2015 22:28:13 +0800</pubDate><description><![CDATA[//http://www.w3cfuns.com/article-5598410-1-1.html




在项目的交互或视觉评审中，前端同学常常会对一些交互效果质疑，提出这样做不好那样做不好。主要原因是这些效果通常会产生一系列的浏览器重绘(redraw)和重排(reflow)，需要付出高昂的性能代价。那么，什么是浏览器的重绘和重排呢？二者何时发生以及如何权衡？如何在具体的开发过程中将重]]></description><category></category></item><item><title><![CDATA[数据结构中各种内部排序算法的比较]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50375021</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50375021</guid><author>CodingDoubleB</author><pubDate>Mon, 21 Dec 2015 22:26:01 +0800</pubDate><description><![CDATA[1 快速排序（QuickSort）

快速排序是一个就地排序，分而治之，大规模递归的算法。从本质上来说，它是归并排序的就地版本。快速排序可以由下面四步组成。

（1） 如果不多于1个数据，直接返回。
（2） 一般选择序列最左边的值作为支点数据。
（3） 将序列分成2部分，一部分都大于支点数据，另外一部分都小于支点数据。
（4） 对两边利用递归排序数列。

快速排序比大部分排序算法]]></description><category></category></item><item><title><![CDATA[URL优化需要注意的几个问题]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50375013</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50375013</guid><author>CodingDoubleB</author><pubDate>Mon, 21 Dec 2015 22:23:48 +0800</pubDate><description><![CDATA[简单、可读性强、规范的URL不仅可以方便用户记忆和识别网站页面，增强页面的浏览量，而且方便搜索引擎更高效的抓取网站内容。所以，在网站建设的初期，在对网站整体架构和层次的搭建之后，我们应该合理的再做好URL优化的工作。

下面详细给大家分享下URL优化常见的一些问题及处理方法：

1.多个URL指向同一页面

在一个网站中，一个页面对应了多个URL，必然会分散这个页面的权重。因为搜索引擎]]></description><category></category></item><item><title><![CDATA[js创建对象的几种常用方式小结]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50369057</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50369057</guid><author>CodingDoubleB</author><pubDate>Mon, 21 Dec 2015 01:43:29 +0800</pubDate><description><![CDATA[再看JS语言精粹里面也有讲到，在网上搜了一下，几乎一样，搬过来，学习记忆




第一种模式：工厂方式 


复制代码代码如下:


var lev=function(){ 
return "脚本之家"; 
}; 
function Parent(){ 
var Child = new Object(); 
Child.name="脚本"; 
Child.age=]]></description><category></category></item><item><title><![CDATA[H5网站开发中常用的十五特性]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50368891</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50368891</guid><author>CodingDoubleB</author><pubDate>Mon, 21 Dec 2015 01:34:08 +0800</pubDate><description><![CDATA[1.新的文档类型  (New Doctype)

目前许多网页还在使用XHTML 1.0 并且要在第一行像这样声明文档类型：

 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

在HTML5中，上面那种声明方式将失效。下面是HTML5中的声明方式：

 
>  

2.脚本和链接无需type  (]]></description><category></category></item><item><title><![CDATA[JS获取URL中参数值（QueryString）的4种方法分享]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50368541</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50368541</guid><author>CodingDoubleB</author><pubDate>Mon, 21 Dec 2015 01:17:12 +0800</pubDate><description><![CDATA[方法一：正则法


复制代码代码如下:

function getQueryString(name) {
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    var r = window.location.search.substr(1).match(reg);
    if (r != null]]></description><category></category></item><item><title><![CDATA[CSS position 属性]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50365616</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50365616</guid><author>CodingDoubleB</author><pubDate>Sun, 20 Dec 2015 21:06:50 +0800</pubDate><description><![CDATA[定义和用法
position 属性规定元素的定位类型。
说明
这个属性定义建立元素布局所用的定位机制。任何元素都可以定位，不过绝对或固定元素会生成一个块级框，而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。




默认值：

static


继承性：
no


版本：
CSS2


JavaScript 语法：
objec]]></description><category></category></item><item><title><![CDATA[九宫格效果一]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50300939</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50300939</guid><author>CodingDoubleB</author><pubDate>Mon, 14 Dec 2015 21:41:50 +0800</pubDate><description><![CDATA[一个简单的html布局，具体可看上传文件]]></description><category></category></item><item><title><![CDATA[判断字符串里面的左右自负是否被+包围]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50300357</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50300357</guid><author>CodingDoubleB</author><pubDate>Mon, 14 Dec 2015 20:53:37 +0800</pubDate><description><![CDATA[function testSymbols(String str){ 
//字符串转数组
var arr = [];
for(var i=0;i
arr.push(str.charAt(i));
}

//判断首尾是否字母
//判断字母是否被 + 包围
if(reg.test(arr[0]) || reg.test(arr[str.length])){ 
return false]]></description><category></category></item><item><title><![CDATA[判断一个字符串中出现次数最多的字符，统计这个次数]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50286685</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/50286685</guid><author>CodingDoubleB</author><pubDate>Sun, 13 Dec 2015 21:31:40 +0800</pubDate><description><![CDATA[//将字符串的字符保存在一个hashtable中，key是字符，value是这个字符出现的次数
var str = "abcdefgaddda";
var obj = {};
for (var i = 0, l = str.length; i 
  varkey = str;  if(!obj[key])   {
　  obj[key] = 1;
　　}
   else    {
]]></description><category></category></item><item><title><![CDATA[C/S 与 B/S两种架构区别整理汇总]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49913397</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49913397</guid><author>CodingDoubleB</author><pubDate>Wed, 18 Nov 2015 21:34:08 +0800</pubDate><description><![CDATA[C/S 与 B/S 区别：
答：有如下八个方面的不同：
(1)硬件环境不同:
　　C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
　　B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
(2)对安全要求不同
　　C/S ]]></description><category></category></item><item><title><![CDATA[IE与FF脚本兼容性问题]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49912949</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49912949</guid><author>CodingDoubleB</author><pubDate>Wed, 18 Nov 2015 20:56:40 +0800</pubDate><description><![CDATA[(1) window.event：表示当前的事件对象，IE有这个对象，FF没有，FF通过给事件处理函数传递事件对象　 
    
(2) 获取事件源:IE用srcElement获取事件源，而FF用target获取事件源
(3) 添加，去除事件
　　 IE：element.attachEvent(“onclick”, function) element.detachEvent(“onclic]]></description><category></category></item><item><title><![CDATA[正则表达式一]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49912525</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49912525</guid><author>CodingDoubleB</author><pubDate>Wed, 18 Nov 2015 20:33:47 +0800</pubDate><description><![CDATA[MSDN官方文件参考：https://msdn.microsoft.com/zh-cn/library/az24scfc.aspx
eg：
1.判断字符串是否是这样组成的，第一个必须是字母，后面可以是字母、数字、下划线，总长度为5-20
  var reg = /^[a-zA-z]\w[4,19]/; (\w 视情况 更换 \s)；
  reg.test(str);
2.编写一个java]]></description><category></category></item><item><title><![CDATA[JS截取字符串substr 和 substring方法的区别]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49912429</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49912429</guid><author>CodingDoubleB</author><pubDate>Wed, 18 Nov 2015 20:15:40 +0800</pubDate><description><![CDATA[substr 方法
返回一个从指定位置开始的指定长度的子字符串。

stringvar.substr(start [, length ])

参数
stringvar

必选项。要提取子字符串的字符串文字或 String 对象。

start

必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。

length

可选项。在返回的子字符串中应包括的]]></description><category></category></item><item><title><![CDATA[福利：前端工程师都喜欢逛那些网站来补充自己]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49894049</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49894049</guid><author>CodingDoubleB</author><pubDate>Tue, 17 Nov 2015 22:03:56 +0800</pubDate><description><![CDATA[相信不少人都喜欢逛网站看一些新鲜的行业资讯和一些技术blog。
那前端工程师都喜欢哪些网站呢？
我先来提几个：
1、伯乐前端 http://web.jobbole.com/
2、v2ex http://v2ex.com/
3、w3plus http://www.w3cplus.com/
欢迎补充]]></description><category></category></item><item><title><![CDATA[前端开发者都应知道的 jQuery 小技巧]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49893987</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49893987</guid><author>CodingDoubleB</author><pubDate>Tue, 17 Nov 2015 21:58:55 +0800</pubDate><description><![CDATA[一个简单技巧的集合，帮你提升 jQuery 技能。

Matt Smith 发起的一个小项目，目前已有 15 个 小技巧。伯乐在线会持续跟进更新。

回到顶部按钮预加载图片检查图片是否加载完毕自动修复损坏的图片Hover 上的 Class 开关禁用 input 字段停止链接加载淡入淡出/滑动开关简单的折叠效果将两个 Div 设为相同高度在新窗口打开外部链接找到文本元素切换可视与隐藏的触发器]]></description><category></category></item><item><title><![CDATA[hadoop——倒排索引]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49893831</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49893831</guid><author>CodingDoubleB</author><pubDate>Tue, 17 Nov 2015 21:53:53 +0800</pubDate><description><![CDATA[原文：http://blog.jobbole.com/82607/ （侵删）




1.倒排索引简介


倒排索引（Inverted index），也常被称为反向索引、置入档案或反向档案，是一种索引方法，被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。

有两种不同的反向索引形式：

一条记录的水平反向索引（或者]]></description><category></category></item><item><title><![CDATA[grunt学习笔记九：新建project]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49763685</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49763685</guid><author>CodingDoubleB</author><pubDate>Tue, 10 Nov 2015 18:50:36 +0800</pubDate><description><![CDATA[1.新建project的文件目录：mkdir grunt-empty
2.建立项目的目录结构：
  ①根目录：新建 index.html（空）
  ②根目录：新建 js 文件夹
  ③js文件夹：新建 index.js（空）
3.使用grunt的准备：
  ①安装package（grunt属于npm的一个package）:npm init (根据提示完成即可)
  ②npm inst]]></description><category></category></item><item><title><![CDATA[grunt学习笔记八：插件（补）]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49763671</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49763671</guid><author>CodingDoubleB</author><pubDate>Tue, 10 Nov 2015 18:39:38 +0800</pubDate><description><![CDATA[1.安装yeoman: npm install -g yo
2.安装自动生成插件模板的generator:
  方案①npm install -g generator-gruntplugin
  方案②按照提示，选择你需要generator: gruntplugin
3.新建目录存放创建的插件： mkdir xxx   
4.切换到你新建的目录:cd xxx
5.创建插件模板：yo g]]></description><category></category></item><item><title><![CDATA[grunt学习笔记七：插件安装]]></title><link>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49763651</link><guid>https://blog.youkuaiyun.com/CodingDoubleB/article/details/49763651</guid><author>CodingDoubleB</author><pubDate>Tue, 10 Nov 2015 18:38:40 +0800</pubDate><description><![CDATA[1.安装yeoman: npm install -g yo
2.安装自动生成插件模板的generator:
  方案①npm install -g generator-gruntplugin
  方案②按照提示，选择你需要generator: gruntplugin
3.新建目录存放创建的插件： mkdir xxx   
4.切换到你新建的目录:cd xxx
5.创建插件模板：yo g]]></description><category></category></item></channel></rss>