<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangshu696的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangshu696</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangshu696]]></copyright><item><title><![CDATA[前端排序算法]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/111320999</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/111320999</guid><author>wangshu696</author><pubDate>Mon, 21 Dec 2020 17:03:39 +0800</pubDate><description><![CDATA[一. 冒泡排序

1.原理：比较两个相邻的元素，将大的交换到右边，如果相等，则不进行交换；

2.过程：

（1）第一次比较：比较第一个数和第二个数，将值大的放在前面，值小的放在后面；

（2）比较第二个数和第三个数，依次类推...；

（3）第一次比较完成，最大的数放到了最后面；

（4）进行第二次比较，最后一个数不参加比较，依次类推进行第三次比较...；

3. 时间复杂度：N个数字要完成排序，要进行总共N-1次排序，每次（第 i 次）排序次数为（N-i）次，用双循环语句，外层控制循环次数，内层控制每一]]></description><category></category></item><item><title><![CDATA[封装vue组件并发布到npm上]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/110390410</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/110390410</guid><author>wangshu696</author><pubDate>Tue, 01 Dec 2020 14:53:11 +0800</pubDate><description><![CDATA[1.使用webpack-simple模板建立一个vue项目，命令：vue init webpack-simple kingtreebtn ,新建项目目录如下：



2.在src目录下新建lib目录存放组件源码



3.组件封装完后新建组件出口文件index.js，文件内容如下：



4. 修改package.json文件



5.修改webpack.config.js文件



6. 执行npm run build 命令，打包后的文件夹为dist

7. 执行npm pack命令，生成kingtre]]></description><category></category></item><item><title><![CDATA[详细介绍Java虚拟机（JVM）]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/88532882</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/88532882</guid><author>wangshu696</author><pubDate>Wed, 13 Mar 2019 15:05:20 +0800</pubDate><description><![CDATA[1. JVM生命周期

启动。启动一个Java程序时，一个JVM实例就产生了，任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。
	运行。main()作为该程序初始线程的起点，任何其他线程均由该线程启动。
	消亡。当程序中的所有非守护线程都终止时，JVM才退出；若安全管理器允许，程序也可以使用Runtime类或者...]]></description><category></category></item><item><title><![CDATA[前端常见跨域解决方案（全）]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/88420634</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/88420634</guid><author>wangshu696</author><pubDate>Tue, 12 Mar 2019 14:46:28 +0800</pubDate><description><![CDATA[什么是跨域？

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源，这里跨域是广义的。

广义的跨域：


1.) 资源跳转： A链接、重定向、表单提交
2.) 资源嵌入： &amp;lt;link&amp;gt;、&amp;lt;script&amp;gt;、&amp;lt;img&amp;gt;、&amp;lt;frame&amp;gt;等dom标签，还有样式中background:url()、@font-face()等文件外链
3.) 脚本请求： j...]]></description><category></category></item><item><title><![CDATA[很全很全的JavaScript的模块讲解(CommonJS,AMD,CMD,ES6模块)]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/88244394</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/88244394</guid><author>wangshu696</author><pubDate>Wed, 06 Mar 2019 17:19:39 +0800</pubDate><description><![CDATA[JavaScript的模块

介绍

模块通常是指编程语言所提供的代码组织机制，利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分割、作用域隔离、模块之间的依赖管理以及发布到生产环境时的自动化打包与处理等多个方面。

模块的优点

可维护性。因为模块是独立的，一个设计良好的模块会让外面的代码对自己的依赖越少越好，这样自己就可以独立去更新和改进。
	命名空间。在 JavaS...]]></description><category></category></item><item><title><![CDATA[不同内核浏览器的差异以及浏览器渲染简介]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/87972495</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/87972495</guid><author>wangshu696</author><pubDate>Wed, 27 Feb 2019 14:41:51 +0800</pubDate><description><![CDATA[一、简单介绍一下什么是浏览器内核。
浏览器最重要或者说核心的部分是“Rendering Engine”，可大概译为“解释引擎”，不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释（如HTML、JavaScript）并渲染（显示）网页。 所以，通常所谓的浏览器内核也就是浏览器所采用的渲染引擎，渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有...]]></description><category></category></item><item><title><![CDATA[Vue数据响应式原理]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/84796999</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/84796999</guid><author>wangshu696</author><pubDate>Tue, 04 Dec 2018 19:11:31 +0800</pubDate><description><![CDATA[前言

Vue.js 的核心包括一套“响应式系统”。

“响应式”，是指当数据改变后，Vue 会通知到使用该数据的代码。例如，视图渲染中使用了数据，数据改变后，视图也会自动更新。

举个简单的例子，对于模板：


&amp;lt;div id=&quot;root&quot;&amp;gt;{{ name }}&amp;lt;/div&amp;gt;


创建一个 Vue 组件：


var vm = new Vue({
  el: '#root'...]]></description><category></category></item><item><title><![CDATA[Vue2源码分析]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/84796873</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/84796873</guid><author>wangshu696</author><pubDate>Tue, 04 Dec 2018 19:02:09 +0800</pubDate><description><![CDATA[分析目标

通过阅读源码，对 Vue2 的基础运行机制有所了解，主要是：

Vue2 中数据绑定的实现方式
	Vue2 中对 Virtual DOM 机制的使用方式
源码初见

项目构建配置文件为 build/config.js，定位 vue.js 对应的入口文件为 src/entries/web-runtime-with-compiler.js，基于 rollup 进行模块打包。

代码中使用 ...]]></description><category></category></item><item><title><![CDATA[Vue数据绑定以及双向绑定原理分析]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/84570886</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/84570886</guid><author>wangshu696</author><pubDate>Tue, 27 Nov 2018 18:02:53 +0800</pubDate><description><![CDATA[效果







分析

已经了解到vue是通过数据劫持的方式来做数据绑定的，其中最核心的方法便是通过Object.defineProperty()来实现对属性的劫持，达到监听数据变动的目的，无疑这个方法是本文中最重要、最基础的内容之一，如果不熟悉defineProperty，猛戳https://blog.youkuaiyun.com/c_kite/article/details/77950326 
整理了...]]></description><category></category></item><item><title><![CDATA[解决IE下Ajax请求无效]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/81388844</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/81388844</guid><author>wangshu696</author><pubDate>Fri, 03 Aug 2018 15:40:25 +0800</pubDate><description><![CDATA[在做ajax页面无刷新添加的时候，IE下遭遇Ajax缓存，因为刚开始并不知道IE有这个坏毛病，折腾好久，终于解决问题。 总结一下解决办法： 
在IE下用Ajax请求某一页面，通常会因为缓存的原因而返回上一次的结果，造成混乱，[即get方式时，获取数据，因发送参数和地址都一致，故IE浏览器会从缓存中取，而不会去请求服务器端，而post方式因为参数的不同，不会产生这个问题]而FF下不会出现这种情况。为...]]></description><category></category></item><item><title><![CDATA[webpack—devtool里的7种SourceMap模式]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/81253579</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/81253579</guid><author>wangshu696</author><pubDate>Fri, 27 Jul 2018 20:13:52 +0800</pubDate><description><![CDATA[我们先来看看文档对这 7 种模式的解释：

模式
			解释
		eval
			每个module会封装到 eval 里包裹起来执行，并且会在末尾追加注释 //@ sourceURL.
		source-map
			生成一个SourceMap文件.
		hidden-source-map
			和 source-map 一样，但不会在 bundle 末尾追加注释.
		inline-source...]]></description><category></category></item><item><title><![CDATA[VUE预渲染遇到的坑]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/81253124</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/81253124</guid><author>wangshu696</author><pubDate>Fri, 27 Jul 2018 19:32:54 +0800</pubDate><description><![CDATA[ 

遇到的问题

1.下载prerender-spa-plugin 失败解决方案

我更新prerender-spa-plugin   发现运行 下去都是  error报错 安装不成功，

但是他会提示你对downloading  什么文件  保存到哪个位置对吧，



把   他提示着  这个在浏览器 输入，我的是下面这个

 


//windows
http://github.com/Me...]]></description><category></category></item><item><title><![CDATA[前端代码规范（静态检查）工具]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/80983538</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/80983538</guid><author>wangshu696</author><pubDate>Tue, 10 Jul 2018 11:42:10 +0800</pubDate><description><![CDATA[为了统一团队的代码规范，除了一纸规范说明之外，还需要引入工具进行限制。虽说工具并不能完全实现规范中的规则，但至少能够在一定程度上缓解代码不统一的局面。相对于后端，前端代码规范的质量检查涉及到HTML, CSS，Javascript ，如今还涉及到SCSS，ES5，JSX,  React，Vue，Angular等，更是复杂。本文提供了在检查工具方面的规则制定，在编辑器IDE中进行配置，在webpac...]]></description><category></category></item><item><title><![CDATA[构建一个预渲染SEO友好的应用示例]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/80927680</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/80927680</guid><author>wangshu696</author><pubDate>Thu, 05 Jul 2018 15:24:03 +0800</pubDate><description><![CDATA[“我受不了了！我们的内部报告面板太烂了”产品经理很生气。他从这个即将崩溃的应用程序中拉取数据的操作是灾难性的。“Max，我们需要更好的报告。你能修吗？”“老实说，我更愿意建立一个全新的应用”，我笑着回答说。“好，请便。全权委托，老铁”我笑着，搓了搓手。最后，在一个需要使用JS框架的场景中，大家一致选择了Vue.js。最近，我完成该应用的代码，我对它简直爱不释手。我花了一些时间为社区写了一个vue....]]></description><category></category></item><item><title><![CDATA[单页应用多路由预渲染指南]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/80927561</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/80927561</guid><author>wangshu696</author><pubDate>Thu, 05 Jul 2018 15:19:05 +0800</pubDate><description><![CDATA[前言Ajax 技术的出现，让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容，这就是单页应用。在一个单页应用中，往往只有一个 html 文件，然后根据访问的 url 来匹配对应的路由脚本，动态地渲染页面内容。单页应用在优化了用户体验的同时，也给我们带来了许多问题，例如 SEO 不友好、首屏可见时间过长等。服务端渲染（SSR）和预渲染（Prerender）技术正是为解决这些问题而生的。阅读...]]></description><category></category></item><item><title><![CDATA[Nginx安装及配置详解]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/80194843</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/80194843</guid><author>wangshu696</author><pubDate>Fri, 04 May 2018 14:34:17 +0800</pubDate><description><![CDATA[nginx概述nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器；同时也是一个IMAP、POP3、SMTP代理服务器；nginx可以作为一个HTTP服务器进行网站的发布处理，另外nginx可以作为反向代理进行负载均衡的实现。这里主要通过三个方面简单介绍nginx反向代理负载均衡nginx特点1. 反向代理关于代理说到代理，首先我们要明确一个概念，所谓代理就是一个代表、一个渠道；...]]></description><category></category></item><item><title><![CDATA[浏览器渲染页面过程与页面优化]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/79621923</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/79621923</guid><author>wangshu696</author><pubDate>Tue, 20 Mar 2018 10:29:41 +0800</pubDate><description><![CDATA[从用户输入浏览器输入url到页面最后呈现 有哪些过程？一道很常规的题目，考的是基本网络原理，和浏览器加载css，js过程。答案大致如下：用户输入URL地址浏览器解析URL解析出主机名浏览器将主机名转换成服务器ip地址（浏览器先查找本地DNS缓存列表 没有的话 再向浏览器默认的DNS服务器发送查询请求 同时缓存）浏览器将端口号从URL中解析出来浏览器建立一条与目标Web服务器的TCP连接（三次握手）...]]></description><category></category></item><item><title><![CDATA[数据库分库分表策略的具体实现方案]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/79391867</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/79391867</guid><author>wangshu696</author><pubDate>Tue, 27 Feb 2018 18:26:15 +0800</pubDate><description><![CDATA[目录(?)[-]一MySQL扩展具体的实现方式二分表实现策略三分库实现策略四分库与分表实现策略五分库分表总结六总结相关文章：1、 使用Spring AOP实现MySQL数据库读写分离案例分析2、MySQL5.6 数据库主从（Master/Slave）同步安装与配置详解3、MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结4、使用mysqlreplicate命令快速搭建 Mysql...]]></description><category></category></item><item><title><![CDATA[大型网站应用之海量数据和高并发解决方案总结一二]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/79391692</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/79391692</guid><author>wangshu696</author><pubDate>Tue, 27 Feb 2018 18:09:53 +0800</pubDate><description><![CDATA[目录(?)[-]一网站应用背景二针对海量数据和高并发的主要解决方案三海量数据的解决方案高并发情况下的解决方案总结一、网站应用背景开发一个网站的应用程序，当用户规模比较小的时候，使用简单的：一台应用服务器+一台数据库服务器+一台文件服务器，这样的话完全可以解决一部分问题，也可以通过堆硬件的方式来提高网站应用的访问性能，当然，也要考虑成本的问题。当问题的规模在经济条件下通过堆硬件的方式解决不了的时候，...]]></description><category></category></item><item><title><![CDATA[用gulp做一个略完整的前端打包工作~]]></title><link>https://blog.youkuaiyun.com/wangshu696/article/details/52415764</link><guid>https://blog.youkuaiyun.com/wangshu696/article/details/52415764</guid><author>wangshu696</author><pubDate>Fri, 02 Sep 2016 17:32:29 +0800</pubDate><description><![CDATA[分模块，每个模块都有独立的页面和静态文件，并将所有静态文件打在一个文件夹下，

一些常用变量可以进行替换，并可进行简单的页面动态生成，

生产环境打包与线上环境打包分开进行，

静态文件进行压缩合并，加md5以及cdn，

wap的静态文件与web端分离，wap的页面文件没有的继承web端的页面文件，有的要用它本身。

打包由grunt换成gulp。

整体的路径要像这样：]]></description><category></category></item></channel></rss>