SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
KindEditor 设计思路

    2012. 7. 7
KindEditor Project



定位:轻量级富文本编辑器

源码:http://github.com/kindsoft/kindeditor
Team

•   罗龙浩(Roddy)
•   www.weibo.com/luolonghao
•   luolonghao@gmail.com
•   luolonghao@hotmail.com
历史版本
KindEditor 1.0




  2005年12月
KindEditor 2.0




   2006年7月
KindEditor 3.0




   2009年1月
KindEditor 4.0




   2011年8月
Who is using?
富文本编辑器


      样式系统            UI组件




• 样式系统:Bold, Insert HTML, Hyperlink, …
• UI组件:Dialog, Menu, Tabs, Button, …
设计理念
只包含最常用的功能
只包含最常用的功能
核心不基于第三方类库



 KindEditor 4.1.1 – 28.9KB

 jQuery 1.7.2 – 32.9KB



原因:其它类库不包含Range、Command
兼容性,稳定性


  连IE6都兼容的编辑器

  稳定压倒一切



单元测试,人肉测试,自动化测试
可定制,可扩展




定制风格,自定义插件、多语言
模块化,按需加载

点击


加载



执行
文件、代码结构
目录结构
themes/
      common/
      default/
plugins/
      image/
      table/
      …
lang/
      zh_CN.js
      …
kindeditor-min.js
JS源文件
 •   header.js    1KB
 •   core.js      7KB
 •   event.js     9KB
 •   node.js      14KB
 •   range.js     22KB
 •   cmd.js       23KB
 •   edit.js      9KB
 •   toolbar.js   4KB
 •   menu.js      3KB
 •   dialog.js    5KB
 •   …
 •   main.js      42KB
 •   footer.js    1KB

执行ant,生成kindeditor-min.js
JS模块
•   Core – 基础
•   Event – 事件
•   Node – 处理Element,类似jQuery接口
•   Range – 范围,W3C标准
•   Command – 样式命令
•   Edit – 编辑框
•   Html – HTML格式化
•   Toolbar – 工具栏
•   Menu – 下拉菜单
•   Dialog – 弹出框
•   ColorPicker – 取色器
•   …
•   Main – 组装编辑器

一个模块一个文件,可单独调用
kindeditor.js代码结构

(function (window, undefined) {
  var K = function() {};
  K.range = function() {};
  K.cmd = function(){};
  K.edit = function(){};
  K.create = function(){};
  window.KindEditor = K;
})(window);
header.js代码

(function (window, undefined) {

 if (window.KindEditor) {
     return;
 }
footer.js代码


})(window);
core.js代码结构

var _VERSION = ‘4.1.1’;
var _IE = ...;
var _GECKO = …;
var _inArray = function(){ … };
var _trim = function(){ … };
var _each = function(){ … };
var _extend = function(){ … };
…

下划线(_)开头表示跨文件的变量、函数
event.js部分代码
…
if (_IE) {
    window.attachEvent('onunload', function() {
        _each(_eventData, function(key, events) {
             if (events.el) {
                    _unbind(events.el);
             }
        });
    });
}
重点模块
Node模块
   面向编辑器的jQuery缩小版
KindEditor.ready(function(K) {
   K(‘#id div’).click(function(e) {
       K(this). addClass(‘my-class’);
   });
});


Reference: http://www.kindsoft.net/docs/node.html
Range模块
               90% W3C标准
KindEditor.ready(function(K) {
   var range = K.range(document);
   range.selectNodeContents(element);
   range.insertNode(node);
});


Reference: http://www.kindsoft.net/docs/range.html
Command模块
           对应execCommand
KindEditor.ready(function(K) {
   var cmd = K.cmd(document);
   cmd.bold();
   cmd.inserthtml(‘<div>text</div>’);
});


Reference: http://www.kindsoft.net/docs/cmd.html
单元测试
QUnit
 http://localhost/kindeditor/test/cmd.html




每个模块有对应的单元测试
加粗测试(1)

test('cmd.bold', function() {
   var div = K('<div/>').html(‘abc');
   var range = K.range(document);
   range.selectNodeContents(div[0]);
   K.cmd(range).bold();
   equals(range.html(),
   '<strong>abc</strong>');
});
自动化测试
Selenium
java -jar selenium-server-standalone-2.21.0.jar
加粗测试(2)

require_once '/KindEditorDriver.php';

$driver = new KindEditorDriver('test/total.html');
$driver->html('');
$driver->clickToolbar('bold');
$driver->input('abc');
equals($driver->html(), '<strong>abc</strong>');
$driver->close();
KindEditor 缺点

• HTML解析基于正则
• 有些功能基于execCommand
• 有些模块缺少单元测试
谢谢

Weitere ähnliche Inhalte

Was ist angesagt?

Blazor 與 Radzen 同行
Blazor 與 Radzen 同行Blazor 與 Radzen 同行
Blazor 與 Radzen 同行Jimmy Ho
 
Kindeditor 设计思路
Kindeditor 设计思路Kindeditor 设计思路
Kindeditor 设计思路luolonghao
 
编辑器设计2
编辑器设计2编辑器设计2
编辑器设计2yiming he
 
前端MVVM框架安全
前端MVVM框架安全前端MVVM框架安全
前端MVVM框架安全Borg Han
 
KISSY for starter
KISSY for starterKISSY for starter
KISSY for starteryiming he
 
KISSY Editor Design 2
KISSY Editor Design 2KISSY Editor Design 2
KISSY Editor Design 2yiming he
 
Class 20170126
Class 20170126Class 20170126
Class 20170126Ivan Wei
 
Koubei banquet 34
Koubei banquet 34Koubei banquet 34
Koubei banquet 34Koubei UED
 
Kindeditor设计思路v2
Kindeditor设计思路v2Kindeditor设计思路v2
Kindeditor设计思路v2luolonghao
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Will Huang
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式Will Huang
 
Node develop expirements
Node develop expirementsNode develop expirements
Node develop expirementsaleafs
 
使用kslite支持第三方内容开发
使用kslite支持第三方内容开发使用kslite支持第三方内容开发
使用kslite支持第三方内容开发leneli
 
使用Bigpipe提升浏览速度
使用Bigpipe提升浏览速度使用Bigpipe提升浏览速度
使用Bigpipe提升浏览速度kumawu
 
不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part II不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part IIBen Lue
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染Ailsa126
 
Web coding principle
Web coding principleWeb coding principle
Web coding principleZongYing Lyu
 
ASP.Net MVC Framework
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework國昭 張
 
Blazor Component 開發實戰
Blazor Component 開發實戰Blazor Component 開發實戰
Blazor Component 開發實戰Gelis Wu
 
Inside the-browser
Inside the-browserInside the-browser
Inside the-browserjy03845581
 

Was ist angesagt? (20)

Blazor 與 Radzen 同行
Blazor 與 Radzen 同行Blazor 與 Radzen 同行
Blazor 與 Radzen 同行
 
Kindeditor 设计思路
Kindeditor 设计思路Kindeditor 设计思路
Kindeditor 设计思路
 
编辑器设计2
编辑器设计2编辑器设计2
编辑器设计2
 
前端MVVM框架安全
前端MVVM框架安全前端MVVM框架安全
前端MVVM框架安全
 
KISSY for starter
KISSY for starterKISSY for starter
KISSY for starter
 
KISSY Editor Design 2
KISSY Editor Design 2KISSY Editor Design 2
KISSY Editor Design 2
 
Class 20170126
Class 20170126Class 20170126
Class 20170126
 
Koubei banquet 34
Koubei banquet 34Koubei banquet 34
Koubei banquet 34
 
Kindeditor设计思路v2
Kindeditor设计思路v2Kindeditor设计思路v2
Kindeditor设计思路v2
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
 
Node develop expirements
Node develop expirementsNode develop expirements
Node develop expirements
 
使用kslite支持第三方内容开发
使用kslite支持第三方内容开发使用kslite支持第三方内容开发
使用kslite支持第三方内容开发
 
使用Bigpipe提升浏览速度
使用Bigpipe提升浏览速度使用Bigpipe提升浏览速度
使用Bigpipe提升浏览速度
 
不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part II不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part II
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
 
Web coding principle
Web coding principleWeb coding principle
Web coding principle
 
ASP.Net MVC Framework
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework
 
Blazor Component 開發實戰
Blazor Component 開發實戰Blazor Component 開發實戰
Blazor Component 開發實戰
 
Inside the-browser
Inside the-browserInside the-browser
Inside the-browser
 

Andere mochten auch

Construction Insolvency
Construction InsolvencyConstruction Insolvency
Construction InsolvencyFrancis Ho
 
Atténuation des risques liés aux applications mobiles afin de garantir des dé...
Atténuation des risques liés aux applications mobiles afin de garantir des dé...Atténuation des risques liés aux applications mobiles afin de garantir des dé...
Atténuation des risques liés aux applications mobiles afin de garantir des dé...Flexera
 
Simplifying social business
Simplifying social businessSimplifying social business
Simplifying social businessKathy Herrmann
 
Techspo 2010 ver. 2
Techspo 2010 ver. 2Techspo 2010 ver. 2
Techspo 2010 ver. 2MHS
 
Berpikir Kreatif I
Berpikir Kreatif IBerpikir Kreatif I
Berpikir Kreatif Iguest361b2c
 
世界各地歌劇院
世界各地歌劇院世界各地歌劇院
世界各地歌劇院Josephine C
 
Mauna (Silence) & Superliving Dr Shriniwas Kashalikar
Mauna (Silence) & Superliving  Dr Shriniwas KashalikarMauna (Silence) & Superliving  Dr Shriniwas Kashalikar
Mauna (Silence) & Superliving Dr Shriniwas Kashalikarshriniwaskashalikar
 
絕美冰域 南極
絕美冰域   南極絕美冰域   南極
絕美冰域 南極Josephine C
 
R E M E D I E S I F O U N D U S E F U L I N J O I N T P A I N S D R S...
R E M E D I E S  I  F O U N D  U S E F U L  I N  J O I N T  P A I N S  D R  S...R E M E D I E S  I  F O U N D  U S E F U L  I N  J O I N T  P A I N S  D R  S...
R E M E D I E S I F O U N D U S E F U L I N J O I N T P A I N S D R S...shriniwaskashalikar
 
Common Licensing Layer Build and Assist
Common Licensing Layer Build and AssistCommon Licensing Layer Build and Assist
Common Licensing Layer Build and AssistFlexera
 
幸運星繁體簡報
幸運星繁體簡報幸運星繁體簡報
幸運星繁體簡報guest74e2881
 
Personal Branding For Job Seekers
Personal Branding For Job SeekersPersonal Branding For Job Seekers
Personal Branding For Job SeekersStephen Murphy
 
Social Monitoring Tools -- Considerations and Selection
Social Monitoring Tools -- Considerations and SelectionSocial Monitoring Tools -- Considerations and Selection
Social Monitoring Tools -- Considerations and SelectionKathy Herrmann
 

Andere mochten auch (20)

Construction Insolvency
Construction InsolvencyConstruction Insolvency
Construction Insolvency
 
Splinternetmarketing Ranking Report Internet Marketing
Splinternetmarketing Ranking Report Internet MarketingSplinternetmarketing Ranking Report Internet Marketing
Splinternetmarketing Ranking Report Internet Marketing
 
Y O G A A N D S T R E S S Dr
Y O G A  A N D  S T R E S S  DrY O G A  A N D  S T R E S S  Dr
Y O G A A N D S T R E S S Dr
 
Chapter 02 planet earth is alive - but not well
Chapter 02   planet earth is alive - but not wellChapter 02   planet earth is alive - but not well
Chapter 02 planet earth is alive - but not well
 
Atténuation des risques liés aux applications mobiles afin de garantir des dé...
Atténuation des risques liés aux applications mobiles afin de garantir des dé...Atténuation des risques liés aux applications mobiles afin de garantir des dé...
Atténuation des risques liés aux applications mobiles afin de garantir des dé...
 
Simplifying social business
Simplifying social businessSimplifying social business
Simplifying social business
 
Techspo 2010 ver. 2
Techspo 2010 ver. 2Techspo 2010 ver. 2
Techspo 2010 ver. 2
 
Berpikir Kreatif I
Berpikir Kreatif IBerpikir Kreatif I
Berpikir Kreatif I
 
世界各地歌劇院
世界各地歌劇院世界各地歌劇院
世界各地歌劇院
 
Corruption Shriniwas Kashalikar
Corruption Shriniwas KashalikarCorruption Shriniwas Kashalikar
Corruption Shriniwas Kashalikar
 
Mauna (Silence) & Superliving Dr Shriniwas Kashalikar
Mauna (Silence) & Superliving  Dr Shriniwas KashalikarMauna (Silence) & Superliving  Dr Shriniwas Kashalikar
Mauna (Silence) & Superliving Dr Shriniwas Kashalikar
 
絕美冰域 南極
絕美冰域   南極絕美冰域   南極
絕美冰域 南極
 
為人的藝術
為人的藝術為人的藝術
為人的藝術
 
R E M E D I E S I F O U N D U S E F U L I N J O I N T P A I N S D R S...
R E M E D I E S  I  F O U N D  U S E F U L  I N  J O I N T  P A I N S  D R  S...R E M E D I E S  I  F O U N D  U S E F U L  I N  J O I N T  P A I N S  D R  S...
R E M E D I E S I F O U N D U S E F U L I N J O I N T P A I N S D R S...
 
Common Licensing Layer Build and Assist
Common Licensing Layer Build and AssistCommon Licensing Layer Build and Assist
Common Licensing Layer Build and Assist
 
幸運星繁體簡報
幸運星繁體簡報幸運星繁體簡報
幸運星繁體簡報
 
Mrs Tabby Gray
Mrs Tabby GrayMrs Tabby Gray
Mrs Tabby Gray
 
Personal Branding For Job Seekers
Personal Branding For Job SeekersPersonal Branding For Job Seekers
Personal Branding For Job Seekers
 
光電塗鴉
光電塗鴉光電塗鴉
光電塗鴉
 
Social Monitoring Tools -- Considerations and Selection
Social Monitoring Tools -- Considerations and SelectionSocial Monitoring Tools -- Considerations and Selection
Social Monitoring Tools -- Considerations and Selection
 

Ähnlich wie Kind editor设计思路

使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例Will Huang
 
Script with engine
Script with engineScript with engine
Script with engineWebrebuild
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xBo-Yi Wu
 
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Enginejay li
 
Html5培训内容
Html5培训内容Html5培训内容
Html5培训内容Jun Yu
 
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Gelis Wu
 
Kissy editor开发与设计
Kissy editor开发与设计Kissy editor开发与设计
Kissy editor开发与设计yiming he
 
Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)ziggear
 
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式Shengyou Fan
 
Js doc toolkit
Js doc toolkitJs doc toolkit
Js doc toolkitjay li
 
Web development with zend framework
Web development with zend frameworkWeb development with zend framework
Web development with zend frameworkthinkinlamp
 
a glance of Javascript module
a glance of Javascript modulea glance of Javascript module
a glance of Javascript modulezipeng zhang
 
JdonFramework中文
JdonFramework中文JdonFramework中文
JdonFramework中文banq jdon
 
jsdoc-toolkit
jsdoc-toolkitjsdoc-toolkit
jsdoc-toolkitsatans17
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文Guo Albert
 
基于Eclipse和hadoop平台应用开发入门手册
基于Eclipse和hadoop平台应用开发入门手册基于Eclipse和hadoop平台应用开发入门手册
基于Eclipse和hadoop平台应用开发入门手册Zhen Li
 
2023-netconf-deploy-azure-function-with-KEDA-on-aks
2023-netconf-deploy-azure-function-with-KEDA-on-aks2023-netconf-deploy-azure-function-with-KEDA-on-aks
2023-netconf-deploy-azure-function-with-KEDA-on-aksRoberson Liou
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门Xiujun Ma
 

Ähnlich wie Kind editor设计思路 (20)

使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
 
Script with engine
Script with engineScript with engine
Script with engine
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
 
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Engine
 
Html5培训内容
Html5培训内容Html5培训内容
Html5培训内容
 
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
 
Kissy editor开发与设计
Kissy editor开发与设计Kissy editor开发与设计
Kissy editor开发与设计
 
Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)
 
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
 
Js doc toolkit
Js doc toolkitJs doc toolkit
Js doc toolkit
 
Web development with zend framework
Web development with zend frameworkWeb development with zend framework
Web development with zend framework
 
a glance of Javascript module
a glance of Javascript modulea glance of Javascript module
a glance of Javascript module
 
前端测试
前端测试前端测试
前端测试
 
前端测试
前端测试前端测试
前端测试
 
JdonFramework中文
JdonFramework中文JdonFramework中文
JdonFramework中文
 
jsdoc-toolkit
jsdoc-toolkitjsdoc-toolkit
jsdoc-toolkit
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 
基于Eclipse和hadoop平台应用开发入门手册
基于Eclipse和hadoop平台应用开发入门手册基于Eclipse和hadoop平台应用开发入门手册
基于Eclipse和hadoop平台应用开发入门手册
 
2023-netconf-deploy-azure-function-with-KEDA-on-aks
2023-netconf-deploy-azure-function-with-KEDA-on-aks2023-netconf-deploy-azure-function-with-KEDA-on-aks
2023-netconf-deploy-azure-function-with-KEDA-on-aks
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门
 

Mehr von taobao.com

百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践taobao.com
 
Java script physical engine
Java script physical engineJava script physical engine
Java script physical enginetaobao.com
 
Html5环保小游戏
Html5环保小游戏Html5环保小游戏
Html5环保小游戏taobao.com
 
阅读类Web应用前端技术探索
阅读类Web应用前端技术探索阅读类Web应用前端技术探索
阅读类Web应用前端技术探索taobao.com
 
完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索taobao.com
 
张平:JavaScript引擎实现
张平:JavaScript引擎实现张平:JavaScript引擎实现
张平:JavaScript引擎实现taobao.com
 
高力:19楼现有前端架构
高力:19楼现有前端架构高力:19楼现有前端架构
高力:19楼现有前端架构taobao.com
 
李成银:前端编译平台
李成银:前端编译平台李成银:前端编译平台
李成银:前端编译平台taobao.com
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具taobao.com
 
张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考taobao.com
 
刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践taobao.com
 
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践taobao.com
 
前端Mvc探讨及实践
前端Mvc探讨及实践前端Mvc探讨及实践
前端Mvc探讨及实践taobao.com
 
黄希彤:【无障碍访问】Margin
黄希彤:【无障碍访问】Margin黄希彤:【无障碍访问】Margin
黄希彤:【无障碍访问】Margintaobao.com
 
何一鸣:【无障碍访问】Aria in taobao
何一鸣:【无障碍访问】Aria in taobao何一鸣:【无障碍访问】Aria in taobao
何一鸣:【无障碍访问】Aria in taobaotaobao.com
 
西乔:理性的设计
西乔:理性的设计西乔:理性的设计
西乔:理性的设计taobao.com
 
杨永全:【组障碍访问】一个盲人眼中的网页内容无障碍体验与设计 大纲
杨永全:【组障碍访问】一个盲人眼中的网页内容无障碍体验与设计 大纲杨永全:【组障碍访问】一个盲人眼中的网页内容无障碍体验与设计 大纲
杨永全:【组障碍访问】一个盲人眼中的网页内容无障碍体验与设计 大纲taobao.com
 
More weapons, more power
More weapons, more powerMore weapons, more power
More weapons, more powertaobao.com
 
无名小站首页改版 -渐进增强与css3
无名小站首页改版 -渐进增强与css3无名小站首页改版 -渐进增强与css3
无名小站首页改版 -渐进增强与css3taobao.com
 
【前端Mvc】之豆瓣说实践
【前端Mvc】之豆瓣说实践【前端Mvc】之豆瓣说实践
【前端Mvc】之豆瓣说实践taobao.com
 

Mehr von taobao.com (20)

百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践
 
Java script physical engine
Java script physical engineJava script physical engine
Java script physical engine
 
Html5环保小游戏
Html5环保小游戏Html5环保小游戏
Html5环保小游戏
 
阅读类Web应用前端技术探索
阅读类Web应用前端技术探索阅读类Web应用前端技术探索
阅读类Web应用前端技术探索
 
完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索
 
张平:JavaScript引擎实现
张平:JavaScript引擎实现张平:JavaScript引擎实现
张平:JavaScript引擎实现
 
高力:19楼现有前端架构
高力:19楼现有前端架构高力:19楼现有前端架构
高力:19楼现有前端架构
 
李成银:前端编译平台
李成银:前端编译平台李成银:前端编译平台
李成银:前端编译平台
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
 
张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考
 
刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践
 
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
 
前端Mvc探讨及实践
前端Mvc探讨及实践前端Mvc探讨及实践
前端Mvc探讨及实践
 
黄希彤:【无障碍访问】Margin
黄希彤:【无障碍访问】Margin黄希彤:【无障碍访问】Margin
黄希彤:【无障碍访问】Margin
 
何一鸣:【无障碍访问】Aria in taobao
何一鸣:【无障碍访问】Aria in taobao何一鸣:【无障碍访问】Aria in taobao
何一鸣:【无障碍访问】Aria in taobao
 
西乔:理性的设计
西乔:理性的设计西乔:理性的设计
西乔:理性的设计
 
杨永全:【组障碍访问】一个盲人眼中的网页内容无障碍体验与设计 大纲
杨永全:【组障碍访问】一个盲人眼中的网页内容无障碍体验与设计 大纲杨永全:【组障碍访问】一个盲人眼中的网页内容无障碍体验与设计 大纲
杨永全:【组障碍访问】一个盲人眼中的网页内容无障碍体验与设计 大纲
 
More weapons, more power
More weapons, more powerMore weapons, more power
More weapons, more power
 
无名小站首页改版 -渐进增强与css3
无名小站首页改版 -渐进增强与css3无名小站首页改版 -渐进增强与css3
无名小站首页改版 -渐进增强与css3
 
【前端Mvc】之豆瓣说实践
【前端Mvc】之豆瓣说实践【前端Mvc】之豆瓣说实践
【前端Mvc】之豆瓣说实践
 

Kind editor设计思路