日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

How-to-quick-getting-started-for-Frontend

發布時間:2023/12/19 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 How-to-quick-getting-started-for-Frontend 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一轉眼已一年多不專注前端方面的開發工作,這一年前端方面的技術又是新天地,偶然接到內部團隊邀請我給他們做一個前端的講座,希望能幫助他們快速、且深刻了解前端這個行業以及行業內的知識,這可真有點讓我為難,由于不愛寫PPT,遂成此文。

亂花漸欲迷人眼

2015年前端界可謂熱鬧非凡

  • Google的Angularjs2正式版遲遲未出,牽動著無數前端工程師的心。
  • Facebook的Reactjs像一記猛藥,讓前端工程師High得不能自已。
  • 同時Facebook的ReactNative讓眾多iOS,Android工程師畏懼。
  • Web Components 也要跟前面兩位一爭高下。
  • 國內的Vue.js 這顆新星也是裊裊升起。
  • 微信也在最近強勢推出應用號,種種跡象表明,Web前端,特別是移動端的Web前端開發將迎來另一番天地。

    近幾年前端發展概況

    2015年

  • Ecma國際大會宣布正式批準ECMA-262第6版,即ECMAScript 2015。ECMAScript6對Web開發的影響
  • 隨著HTML5的標準在14年10月由W3C發布為正式推薦標準,15年HTML5的發展也是飛速向前,2015年有80%的App基于HTML5
  • Flash在HTML5的沖擊下,各大廠商和瀏覽器商都陸續聲明不再使用這一技術。參考
  • Nodejs和io.js正式合并。
  • 多年前的JQuery,Extjs,Dojo,Requirejs,Seajs如火如荼,現如今也是不溫不火,技術迭代如此之快,一不小心就迷失了。

    萬變不離其中

    不論這個行業發展有多迷人,新出的技術又是多么的牛逼,三板斧CSS+HTML+Javascript永遠是鐵打的基石,當然隨著行業發展,三板斧本身也是在發展中,所以對前端新技術的追求基本上都是在這三者身上,像如日中天的HTML5,CSS3以及JS語言本身的發展。還有瀏覽器以及Webview這兩個也非常重要,他們就好比后端工程師要熟悉Unix環境一個道理。當然大部分前端工程師在還不需要過多去琢磨這兩者。

    其他的各種吊炸天的技術框架都是淺嘗,嘗多了發現他們要解決的核心問題是

  • 前后端分離
  • Web工程化
  • Web性能
  • 再抽象就是兩個問題

  • 工程化
  • 產品性能
  • 因為前后端分離的目的是為了提升開發效率和維護效率這應該屬于工程的范疇,而引入工程化的概念核心目的就是提升效率,為達目的過程中會去解耦合,減依賴,管理依賴,組件化,即插即用等概念。

    當然這類問題不僅僅是前端,很大程度上后端很多技術做很多工作都是致力于去解決這兩類問題。

    所以當你對這三板斧非常熟悉的時候,就能很好的去駕馭前端的亂花漸欲迷人眼,否則就是空談。

    桃園三結義

    大哥HTML:網頁的骨架
    二哥CSS:網頁多彩的源泉
    三弟Javascript:靈魂,沒有他只是一副空皮囊

    下面就簡單的來介紹這三個好兄弟

    大哥HTML

    超文本標記語言(英文:HyperText Markup Language,HTML)是為“網頁創建和其它可在網頁瀏覽器中看到的信息”設計的一種標記語言。HTML被用來結構化信息——例如標題、段落和列表等等,也可用來在一定程度上描述文檔的外觀和語義。1982年由蒂姆·伯納斯-李創建,由IETF用簡化的SGML(標準通用標記語言)語法進行進一步發展的HTML,后來成為國際標準,由萬維網聯盟(W3C)維護。

    1980年起源于一個物理學家的項目,當時只有少量的標簽,直到1993年的時候還是大學生馬克·安德森在他的Mosaic瀏覽器加入<img>標記,至此HTML添加了越來越多的標簽。更加豐富起來。

    維基百科-HTML

    HTML到底是什么

    HTML就是標記語言,換句話說就是 普通 文本,只不過 瀏覽器 賦予了它神奇力量。

    就像Markdown一樣,也是標記語言,他會被Markdown編輯器賦予優美的樣式,同時在特定網頁或者編輯器上打開的時候展示出來而已。

    瀏覽器如何解析HTML

    當我們在瀏覽器地址欄輸入網址按下Enter時候,瀏覽器會發出一個HTTP請求,然后DNS解析找到對應的服務器IP地址,等一系列過程,最終這個請求會響應帶有標記語言的文檔,可能是.html后綴,也可能是其他,反正在Respoonse的頭部會是content-type:text/html; charset=UTF-8

    這個過程還可以很細化,也有很多策略。感興趣戳這里

    然后瀏覽器會解析該特定文本內的內容,第一句話是類似<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">這句話是告訴瀏覽器該文檔使用的HTML是哪個版本,瀏覽器會用對應的方式來渲染,這就是過去IE等瀏覽器會有諸如

  • 標準模式
  • 怪異模式
  • 準標準模式
  • 現代瀏覽器都采用HTML5的標準頭部<!DOCTYPE html><html lang="zh">就這一步省去了好多瀏覽器兼容的麻煩。當然了,互聯網產品目前Web前端在PC端的兼容性少很多了,我們可以很大膽的說不兼容IE8及以下,傳統的企業Web產品就不評論,很多還在支持陳舊的IE6等,這類不與時俱進的暫不討論。

    然后遇到script標簽會再次發起HTTP下載對應的Javascript,遇到link會再次發起http請求css文件,最終將這三者水乳交融的產物呈現給大家就是非常nice的頁面。

    這個過程可能涉及到瀏覽器重繪和重新渲染。感興趣戳這里

    HTML核心

    HTML核心就是各類TAG俗稱標簽或者元素,HTML5的標簽總覽

    分類標簽
    文檔類型宣告<!DOCTYPE html>
    根元素元素html
    META元素head、 title、base、link、meta、style
    部件元素body、section、nav、article、aside、h1、 h2、 h3、h4、 h5、 h6、hgroup、header、footer、address
    分組內容元素p、hr、br、pre、blockquote、ol、ul、li、dl、dt、dd、figure、figcaption、div
    文本層次語義元素a、em、strong、small、cite、q、dfn、abbr、time、code、var、samp、kbd、sub、sups、i、b、mark、ruby、rt、rp、bdo、span
    編輯元素ins、del
    嵌入內容元素img、iframe、embed、object、param、video、audio、source、canvas、map、area
    表格元素table、caption、colgroup、col、tbody、thread、tfoot、tr、td、th
    表單元素form、fieldset、legend、label、button、select、datalist、optgroup、option、textarea、keygen、output、progress、meter
    互動元素details、summary、command、menu
    腳本元素script、noscript

    參考文章

    HTML很多新的標簽以及標簽屬性比如audio,vedio,nav,footer等元素都能極大的加快開發效率。
    參考文章

    HTML展現分類

    HTML元素按照展現分為塊元素(block element)和內聯元素(inline element)也叫行內元素。當然還有inline-block

    塊級元素

    一般是其他元素的容器,能容納其他塊元素和行內元素,塊元素好比個四方塊,里邊用來放其他元素,默認情況下

    主要特點

  • 獨占瀏覽器一行
  • 總是在新行上開始
  • 高度、行高以及內外邊距都是可控制的。
  • 寬度默認100%,除非設定寬度。
  • 它可以容納內聯元素和其他塊元素
  • 常見的塊級元素有

  • div
  • p
  • h1~h6
  • hr
  • form
  • 行內元素

    一般都是基于語義級(semantic)的基本元素。內聯元素只能容納文本或者其他內聯元素,常見內聯元素有a和span。

    主要特點

  • 和其他元素都在一行上
  • 高,行高及外邊距和內邊距不可改變
  • 寬度就是它的文字或圖片的寬度,不可改變
  • 內聯元素只能容納文本或者其他內聯元素
  • 元素類型可以通過display屬性指定。

    inline-block

    inline-block 的元素既具有 block 元素可以設置寬高的特性,同時又具有 inline 元素默認不換行的特性。當然不僅僅是這些特性,比如 inline-block 元素也可以設置 vertical-align 屬性。

    簡而言之:inline-block 后的元素就是一個格式化為行內元素的塊容器( Block container )

    inline-block前世今生

    文檔流和浮動

    瀏覽器窗體自上而下分成一行行每行按照從左到右的順序排放,這就是文檔流的排列形式。

  • 如果不對元素做任何定位相關的樣式,非浮動塊級元素會按照從上而下,行內元素從左到右排列,很顯然我們需要去改變它們,這就需要利用浮動或者定位
  • 浮動塊級元素則按規定浮在行的一端。 若當前行容不下, 則另起新行再浮動。
  • 內聯元素也不會獨占一行。 幾乎所有元素(包括塊級,內聯和列表元素)均可生成子行, 用于擺放子元素。
  • 有三種情況將使得元素脫離文檔流而存在

  • 浮動(IE中浮動元素也存在于文檔流)
  • 絕對定位
  • 固定定位。
  • 浮動元素不占任何正常文檔流空間,而浮動元素的定位還是基于正常的文檔流,然后從文檔流中抽出并盡可能遠的移動至左側或者右側。文字內容會圍繞在浮動元素周圍。當一個元素從正常文檔流中抽出后,仍然在文檔流中的其他元素將忽略該元素并填補他原先的空間。

    基于文檔流,有以下定位模式

  • 相對定位,即相對于元素在文檔流中位置進行偏移,但保留原占位。
  • 絕對定位,即完全脫離文檔流,相對于position屬性非static值的最近父級元素進行偏移。
  • 固定定位,即完全脫離文檔流,相對于視區進行偏移。
  • HTML和CSS以及Javascript的關系

    HTML就是web頁面的骨架結構,CSS層級表賦予其多彩的樣式,Javascript賦予其豐富行為能力,讓其能動起來。

    二哥CSS

    CSS是什么

    層疊樣式表(英語:Cascading Style Sheets,簡寫CSS),又稱串樣式列表、級聯樣式表、串接樣式表、層疊樣式表、階層式樣式表,一種用來為結構化文檔(如HTML文檔或XML應用)添加樣式(字體、間距和顏色等)的計算機語言,由W3C定義和維護。目前最新版本是CSS2.1,為W3C的推薦標準。CSS3現在已被大部分現代瀏覽器支持,而下一版的CSS4仍在開發過程中

    來自維基百科

    CSS核心

    CSS核心由多組規則組成,每組規則由selector,property,value即選擇器、屬性、值三者組成 如:

    p.tips { // 選擇器font-size: 12px; // property: valuefont-family: sans-serif; }

    這句話的意思就是所有class為tips的p元素,即<p class="tips">Hello</p>,應用字體為sans-serif,字體大小為12px。

    其中class屬性是html元素應用css樣式鏈接屬性。

    selector

    CSS的選擇器類型非常多,共分為以下幾類

    基本選擇器
  • ID選擇器
  • 類選擇器
  • 元素類型選擇器
  • 萬用選擇器
  • 屬性選擇器
  • 其中屬性選擇器又有

    代碼備注
    [attribute]元素有attribute的屬性
    [attribute="value"]屬性attribute里是value
    [attribute~="value"]屬性attribute里使用空白分開的字符串里其中一個是value
    [attribute|="value"]屬性attribute里是value或者以value-開頭的字符串
    [attribute^="value"]屬性attribute里最前的是value
    [attribute$="value"]屬性attribute里最后的是value
    [attribute*="value"]屬性attribute里有value出現過至少一次

    基本選擇器

    #btnSave {font-size: 14px;color: #ff8a01; } .btnSave {font-size: 14px; } button {font-size: 14px; } * {font-size: 12px; } a[class="button"] {color: #ff8a01; }
    偽元素選擇器

    偽元素可以選擇不在Document結構中的信息。

  • :after或者::after 元素之后[常用]
  • :before或者::before 元素之前[常用]
  • :first-letter 或 ::first-letter[不常用]
  • :first-line 或 ::first-line[不常用]
  • 例如

    p::after { content:" ";background-color:yellow;color:red; }
    偽類選擇器

    虛擬類選擇器指的是為不同的狀態、性質的元素。

    主要有以下幾類

  • :link 超鏈接未被訪問[常用]
  • :visited 超鏈接被訪問過[常用]
  • :hover 鼠標(鼠標)在元素上面[常用]
  • :active 鼠標(鼠標)在元素上按著[常用]
  • :focus 焦點在元素上[常用]
  • :target 元素被URL標記(CSS 3新增的類)[不常用]
  • :lang 向帶有指定lang屬性的元素添加樣式。[不常用]
  • 例如

    a:hover {backgroud-color: #ff8a01; }
    組合選擇器
  • A > B 選擇A下一層的元素B
  • A ~ B 選擇與A同父層的元素B
  • A + B 選擇與A相鄰的元素B(不能被任何元素相隔)
  • A B 包含選擇符
  • 還有常見的逗號, 逗號作用是將多個選擇器應用同一組屬性和值,

    比如

    p, a, span {font-size: 12px; }

    新的CSS3新支持的選擇器可以戳這里

    CSS的選擇器優先級

    當同一元素匹配多個選擇器的時候,那么該元素應該應用哪一個樣式呢?優先級如下

  • 通用選擇器(*)
  • 元素(類型)選擇器
  • 類選擇器
  • 屬性選擇器
  • 偽類
  • ID 選擇器
  • 內聯樣式
  • !important 規則例外
  • 來自MDN

    盒子模型


    區別就在于計算width和height的時候是否加上了padding和border.

    CSS支持的屬性

    CSS支持的屬性很多,包括背景、顏色、字體、定位、動畫等屬性

    詳情參考

    三弟Javascript

    1995年出生的Javascript最初只用在瀏覽器上做簡單的表單驗證,能在客戶端把不符合規范的邏輯去掉,節省網絡請求和用戶等待時間一下子就廣為流行,與此同時微軟推出JScript,當時的管理者希望這門語言跟同年出來的的Java一樣火,所以取名為Javascript,直到今日還真不負所望,幾乎跟Java一樣火,甚至有過之。

    回歸正題

    Javascript到底是什么

    盡管對這門語言我有著比較深入的琢磨,可想了好久還是不知道該如何向未接觸過它的人來介紹它,想了想還是分兩種人盡量來解釋清楚

    • 無編程經驗

    • 腳本語言,可以運行在服務器端和瀏覽器端
    • 能做網頁動畫效果
    • 有編程經驗

    • 類C語言
    • 弱類型
    • 面向對象
    • 無所不能
    Javascript語言特色
    純粹的面向對象

    javascript一切皆對象,哪怕

    console.log(true.toString()); // true console.log("2".length); // 1

    你可以直接創建一個對象

    var obj = {name: "liujiangbei",sayHi: function(name) {console.log("Hello, " + name);} }

    值得一讀

    弱類型
    console.log([] == ![]); // true

    []==![]相當于[]==false(沒有異議了吧因為![]就是false)

    []==false又是怎么轉化的呢,對于Object類型先轉化成基礎類型Number 0
    0==false又將false轉化為Number也是為0

    概括就是

    • 對于基本類型Boolean,Number,String,三者之間做比較時,總是向 Number進行類型轉換,然后再比較;
    • 如果有Object,那么將Object轉化成這三種基本類型(PS:到底轉換成哪一種呢?我猜測會轉化成Number),再進行基本類型比較;
    • 對于null和undefined,只有 x,y分別是它們時才相同,其他都為false。

    對于類型相同那么==操作符就會直接比較值,不會再進行轉換了!
    建議總是使用===而不是用==

    函數作用域
    var testFn = function() {var abc = "abc";if (abc) {var str = "hello";}console.log(str); }testFn();

    運行完輸出hello。

    說明Javascript是函數級作用域名,跟php一樣,而靜態語言如Java,Golang,C,C++都是塊級作用域。

    閉包
    /** 閉包:是指有權訪問另一個函數作用域中的變量的【函數!!!】* 創建閉包的常見方式就是在一個函數內部創建另一個函數(通常是匿名函數)*/function createComparisonFun(propertyName){return function(object1,object2){//這兩行代碼是匿名函數的內部代碼,卻訪問了外部函數中的變量propertyName//即使這個內部函數被返回了,而且是在其他地方被調用了,但它仍然可以訪問變量propertyName//之所以還能訪問這個變量,是因為內部函數的作用域鏈包含外部函數如createComparisonFun()的作用域鏈var value1 = object1[propertyName];var value2 = object2[propertyName];if(value1<value2){return -1;}else if(value1>value2){return 1;}else{return 0;}}; };
    基于prototype繼承

    原型和原型繼承

    多變的上下文對象

    上下文this是初階javascript程序員最容易混淆的地方,總結下來

    # 方法調用模式
    /*** 方法調用Function* 1、當一個function被保存為一個對象的屬性時,我們稱為method* 2、this綁定到該對象*/ var obj = {val: 0,getVal: function() {console.log(this); //{ value: 0, getVal: [Function] },充分體現this指的就是obj這個對象console.log(this.toString()); //[object Object]return this.val;} }; console.log(obj.getVal()); //prototype只能用在類型上!!!不能用于對象上!!!
    # 函數調用模式
    /*** 函數調用模式* 1、當一個函數并非一個對象的屬性時,那么就是當一個函數來調用的* 2、this指向全局對象(大膽猜想這種方案是錯的)* 3、解決此方法的方案就是定義一個變量存儲this對象*/ var add = function(a, b) {console.log(this.toString()); //[object global]全局變量啊return a + b; }; console.log(add(2, 4));
    # 解決函數調用模式中this會指向全局變量的方法
    /*** 解決函數調用模式中this會指向全局變量的方法*/ var obj = {val: 4,getVal: function() {return this.val;} }; obj.double = function() { //方法模式,double是obj對象的方法var that = this; //this指的就是obj對象var helper = function() { //函數模式that.val = that.val * 2;};helper(); }; obj.double(); //方法模式調用double console.log(obj.val); //
    # 構造器調用模式
    /*** 構造器調用模式* 1、如果一個函數前面帶上一個new來調用,那么就是構造器調用模式*/ var Person = function(name) {console.log(this.constructor);this.name = name; }; Person.prototype.getName = function() {return this.name; }; var person = new Person('ALLEN'); console.log(person.getName());
    # apply/call調用模式
    /*** Apply調用模式(apply/call)* 1、apply讓我們構建一個參數數組傳遞給調用函數,也允許我們選擇this的值*/ var func = function() {console.log(Object.prototype.toString.apply(this));console.log(this.value); //this本來指向全局變量,因為是函數調用模式 };var obj1 = {value: 'This is the first object\'s value' }; var obj2 = {value: 'This is the second object\'s value' }; func.apply(obj1); //This is the first object's value func.apply(obj2); //This is the second object's value
    Function也是普通類型

    Javascript中function也是一個普通數據類型,支持

  • 作為參數傳遞給另一個函數。
  • 作為函數的返回值。
  • 參數傳遞方式

    Javascript中參數的傳遞是值傳遞。

    對于基本類型string, boolean, number, undefied, null一眼就看出是安置傳遞

    function test(num) {num += 10;return num; }var num = 10; console.log(num); //10 外部變量并未受到影響 console.log(test(num)); //20

    而對于object, array, function

    var testFn = function(abc) {if (typeof abc === "object") {abc.name = "liujiangbei";abc.age = 26;}}var obj = {name: "liujb",age: 25 }testFn(obj); console.log(obj) // { name: 'liujiangbei', age: 26 }

    乍一看,怎么變了?難道是引用傳遞?請看下邊

    function setName(obj) {obj.name = "James";obj = new Object();obj.name = "Leon" } var person = new Object(); person.name = "Jeremy"; setName(person); console.log(person.name);//James

    以上代碼輸出的是James,如果是按引用傳遞,那么以上代碼輸出的是Leon。實際上,當執行obj.name = James的時候,引用所指向的對象的值已經發生了改變,當在對obj進行覆蓋的時候,obj的值是一個指向局部對象的引用,而這個引用無法對外部的對象產生影響,并且此對象會在函數執行結束之后銷毀。

    通俗地理解,傳遞不是引用,而是引用的副本。

    Javascript最佳實踐

    最佳實踐

    一個好漢三個幫

    HTML是頁面的骨架,CSS賦予頁面姿彩,JS給頁面注入靈魂。但是她們具體是如何協作的呢?比如最常見的功能,點擊加載更多。

    要實現該功能的主要步驟有

  • JS獲取用戶點擊事件
  • 夾雜著動畫效果
  • JS發送http請求到對應的server端
  • JS接收HTTP請求返回的數據(json、txt、xml等格式)
  • 將數據展現
  • 那么問題來了

    JS如何獲取用戶點擊事件?

    用戶點擊的是一個按鈕,翻譯過來就是HTML元素,JS是如何跟HTML他的大哥溝通的呢?這里要接住它們共同的溫床(瀏覽器)提供的一個叫做DOM的東西

    什么是DOM?

    Document Object Model的歷史可以追溯至1990年代后期微軟與Netscape的“瀏覽器大戰”(browser wars),雙方為了在JavaScript與JScript一決生死,于是大規模的賦予瀏覽器強大的功能。微軟在網頁技術上加入了不少專屬事物,既有VBScript、ActiveX、以及微軟自家的DHTML格式等,使不少網頁使用非微軟平臺及瀏覽器無法正常顯示。DOM即是當時蘊釀出來的杰作。

    維基百科

    The Document Object Model (DOM) is a programming interface for HTML, XML and SVG documents. It provides a structured representation of the document (a tree) and it defines a way that the structure can be accessed from programs so that they can change the document structure, style and content. The DOM provides a representation of the document as a structured group of nodes and objects that have properties and methods. Nodes can also have event handlers attached to them, and once that event is triggered the event handlers get executed. Essentially, it connects web pages to scripts or programming languages.

    Document Object Model (DOM)

  • 通俗理解,就是瀏覽器給JS提供了獲取HTML元素的功能,獲取到的DOM元素跟HTML元素能對應起來
  • 再通俗一點,DOM元素就是HTML元素(雖不對,但無妨)
  • HTML DOM定義了所有 HTML元素的對象和屬性,以及訪問它們的方法。
  • DOM節點包括XML DOM、HTML DOM、核心DOM

    DOM樹如下

    DOM具備的屬性和能力

    HTML DOM節點
    HTML DOM方法
    HTML DOM訪問
    HTML DOM Event

    其中左邊菜單的內容都需要看一看!

    JS獲取按鈕并提前給按鈕綁定單擊事件的代碼如下

    var btnLoadMore = document.getElementById("btnLoadMore");btnLoadMore.addEventListen("click", function(e) {// do somethings.. });

    JS通過獲取HTML DOM元素,可以對HTML DOM元素進行屬性的訪問和更改(CSS樣式只是HTML元素的屬性之一),同時還可以對元素本身作各種更改。還可以提前監聽某DOM元素的各類事件,如

  • click
  • dbclick
  • mouseover
  • JS如何發起HTTP請求并處理響應數據?

    傳說中的Ajax

    XMLHttpRequest對象

    XMLHTTP是一組API函數集,可被JavaScript、JScript、VBScript以及其它web瀏覽器內嵌的腳本語言調用,通過HTTP在瀏覽器和web服務器之間收發XML或其它數據。XMLHTTP最大的好處在于可以動態地更新網頁,它無需重新從服務器讀取整個網頁,也不需要安裝額外的插件。該技術被許多網站使用,以實現快速響應的動態網頁應用。例如:Google的Gmail服務、Google Suggest動態查找界面以及Google Map地理信息服務。

    特意查了一下,以前都只知道用這個對象,但是沒有分清這到底是javascript對象還是瀏覽器接口,現在看來很清晰了,這就是一個瀏覽器接口,用于跟后臺交換數據。

    發起請求和處理請求數據

    var xhr = createXHR(); if (!xhr) {return "create XMLHttpRequest failed."; } xhr.open(obj.method, obj.url, true); //true表示異步// 監聽statechange事件 xhr.onreadystatechange = function() {if (xhr.readyState === 4) {if (xhr.status === 200) {obj.succFn(xhr.responseText);} else {obj.failFn(xhr.responseText);}} else if (xhr.readyState === 3) {} else {} };// send request if (obj.method.toUpperCase() === 'GET') {xhr.send(null); } else if (method.toUpperCase() === 'POST') {var body = objToBody(obj.data);xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");xhr.send(body); }

    XMLHttpRequest狀態值

  • 0: 請求未初始化 create
  • 1: 服務器連接已建立 open
  • 2: 請求已接收 send
  • 3: 請求處理中 比如數據比較大,這個時候就可以開始提示用戶
  • 4: 請求已完成,且響應已就緒
  • Ajax入門推薦

    動畫又是如何實現的?

    動畫實現的本質在于不斷的變化元素的屬性,1000ms內變化60次肉眼基本就看不出卡頓,大概一幀16.6s

    基于此前端動畫的實質都是通過

  • Javascript本身或
  • CSS3本身帶的屬性去
  • 更改DOM元素的屬性來達到動畫的目的。當然了還有一些動畫是通過動態的gif圖實現的。

    通過JS去改變按鈕的顏色

    var btnMore = document.getElementById('btnMore'); var colorNum = 0;setInterval(function(){btnMore.style.backgroundColor = "#ff8a0" + colorNum; }, 16);

    這部分代碼只是偽代碼

    或者還可以把setInterval改成setTimeout里邊嵌套setTimeout 兩者區別

    通過CSS3去改變屬性
    div {width: 100px;height: 100px;background: yellow;transition: width 2s;-moz-transition: width 2s; /* Firefox 4 */-webkit-transition: width 2s; /* Safari and Chrome */-o-transition: width 2s; /* Opera */ }div:hover {width: 300px; }

    該樣式就是當鼠標放到div上的時候,在兩秒內寬度增長到300px

    建議使用CSS3的動畫屬性來實現動畫,因為CSS3本身對GPU加速做了很多優化,比原生JS使用最質樸的方式實現效果要佳一些。當然這只是相對而言。

    如果實現的功能要跟瀏覽器交互呢?

    比如做完某某操作之后要關閉瀏覽器或者實現后退功能呢?這個時候又該如何?

    BOM對象隆重登場

    BOM是browser object model的縮寫,簡稱瀏覽器對象模型
    BOM提供了獨立于內容而與瀏覽器窗口進行交互的對象
    由于BOM主要用于管理窗口與窗口之間的通訊,因此其核心對象是window
    BOM由一系列相關的對象構成,并且每個對象都提供了很多方法與屬性
    BOM缺乏標準,JavaScript語法的標準化組織是ECMA,DOM的標準化組織是W3C
    BOM最初是Netscape瀏覽器標準的一部分

    通俗理解就是提供JS訪問瀏覽器對象的能力,跟XMLHttpRequest類似。

    其中

  • frames就是常見的iframe嵌套別的網頁的
  • history有返回上一頁功能
  • location獲得網頁URL
  • navigator訪問者瀏覽器信息
  • screen屏幕相關信息
  • 推薦閱讀

    至此這三者是如何協作的就大概講了一下。

    H5和CSS3

    再來簡單的講講如日中天的HTML5和CSS3。

    CSS3

    CSS3的核心在我的理解中就是提供了

  • 多樣化的css選擇器
  • 支持動畫的能力
  • 說起來雖然容易,但是其實還是很實用,也不是那么容易掌握的。

    HTML5

    HTML5提供的核心功能非常實用,主要有

  • 新的語義化的標簽和屬性并且淘汰過時和冗余的元素和屬性
  • Geolocation
  • localStorage
  • FileApi
  • Canvas
  • 離線存儲Mainfest
  • 本地數據庫
  • 多媒體av
  • XMLHttpRequest2
  • Can-I-use-html5-css3

    Geolocation

    就是網頁定位,通過Geolocation提供的功能,使得H5頁面可以跟Native功能一樣的定位。

    /*** H5定位*/ geo.h5 = function(opt) {if (!opt) return;var timeObj = opt.timeout || {};//H5定位成功回調函數var succ = function(pos) {var d = {lat: pos.coords.latitude,lng: pos.coords.longitude,maptype: opt.maptype || "wgs"};if (isFunc(opt.success)) opt.success(d);};//h5定位失敗回調--失敗包括超時、或者用戶不允許var error = function(err) {var st = "";switch (err.code) {case err.TIMEOUT:st = "timeout";if (isFunc(timeObj.CB)) timeObj.CB(geoFailObj.timeout);break;case err.POSITION_UNAVAILABLE:if (isFunc(opt.error)) opt.error(geoFailObj.position_unavailable);st = "position_unavailable";break;case err.PERMISSION_DENIED:if (isFunc(opt.denied)) opt.denied(geoFailObj.permission_denied);st = 'permission_denied';break;case err.UNKNOWN_ERROR:if (isFunc(opt.error)) opt.error(geoFailObj.unknow_error);st = "unknow_error";break;default:break;};};if (navigator.geolocation) {navigator.geolocation.getCurrentPosition(succ, error, {enableHighAccuracy: true,timeout: timeObj.cnt || 5000,maximumAge: 2000});} };

    公司的webapp第一版就是我做的,當時用的就是H5定位,微信的定位接口開放還在這之后。

    LocalStorage

    LocalStorage經常會使用,說白了就是在本地存儲一些字符串,用于在不同的網頁之間共享數據,相比cookie沒有時間限制,大小限制在每個域4M左右,完全溝通。另外cookies會在每次發出HTTP請求的時候帶在header上,不僅影響性能,嚴重的有些server端會限制cookie的大小。LocalStorage簡直就是救命稻草

    具體使用

    Canvas

    動畫工程師和網頁游戲工程師的救命稻草。能夠通過JS畫出流暢和高清的動畫效果,不再需要去學習陳舊的flash或者還不成熟的webgl

    Avdio和Vedio

    一個在網頁上放視頻一個放音樂,目前市面上吊炸天的H5頁面哪個不得來點音樂和視頻。

    以上幾個H5新功能是實際產品中運用過并且表現良好。

    開發工具

    Sublime text 3

    Sublime text 是一款輕量級的全平臺文本編輯器,突出的功能就是支持海量插件

    官方網站

    Plugins

  • 安裝Package Control Sublime的包管理器[必裝]
  • HTML-CSS-JS Prettify 代碼格式化工具[必裝]
  • Trimmer 移除代碼中的空格[必裝]
  • Emmet html代碼利器,比如在Mac輸入html:5然后按ctrl+E就會出現[必裝]

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title> </head> <body></body> </html>
  • JSLint 靜態JS代碼檢測[必裝]

  • CssLint CSS樣式檢測[必裝]

  • MarkdownEditing Markdown編輯工具

  • MarkdownPreview Markdown文檔預覽工具

  • CSS3 寫CSS3屬性時提示功能

  • DocBlockr 添加XML形式的備注信息

  • 好文推薦

    Sublime快捷鍵

  • Command+D 選詞
  • Command+L 選中一行
  • Command+Shift+P 進入控制中心
  • Command+P 搜索頁面和頁面中的方法
  • 其他編輯器如

  • Atom
  • Webstrom
  • VIM/Emacs流請自行查詢
  • 都是非常優秀的前端編輯器和IDE

    Chrome Devtools

    最強大的網頁調試工具 Chrome Developer Tools,諸君一定要好好琢磨


    同時Chrome還支持移動端調試,有很多模擬器,包括屏幕類型,等。

    調試和調試工具

    Charles

    主界面

    主要設置和注意項目

  • 保證手機和電腦在同一局域網內。
  • 設置Charles的代理端口為8888或者其他都可以。
  • 查看本機IP地址ifconfig en0找到IP地址
  • 在iOS手機的設置界面如

    設置完了之后點左上角的WiFi返回,然后Charles會彈出是否允許你的手機IP訪問的窗口,然后點擊允許,這樣Charles就能抓包了。

    詳細設置參考

    支持的主要功能

  • 抓包 – 看HTTP請求的明細,如果是HTTPS需要導入密鑰也是可以的,自行折騰。
  • DNS反向解析 – 支持從特定域名出發,將請求跳轉到特定IP的機器,Pre上線使用以及當時微信支付使用。
  • 代理本地文件 – 支持某個請求響應到本地文件。
  • Charles是抓包工具,不支持像Chrome那樣子實時選中元素。
  • Fiddler

    Filder設置和Charles有類似的地方,請點這里

    Mac電腦和iPhone手機

  • iPhone手機一部
  • Mac電腦一臺
  • 請看神圖

    設置Safari的Develop屬性可見,然后用USB連接線鏈接iPhone手機,然后在手機上打開你的站點,然后點擊一下Develop->iPhone6->www.baidu.com就會出現Safari的開發者工具面板

    而此時,你的iPhone上的頁面就變成了

    就像你用Chrome瀏覽器調試PC端網頁一樣。

    神器weire

    有人說了我沒有Mac和iPhone怎么辦,不用著急,我已經為你準備好一切,請戳這里

    工程和性能

    洋洋灑灑寫了好大一篇,為了本文能夠首尾呼應,讓我們還是專注到Web最核心的兩個問題上

  • 工程化
  • 產品性能
  • 工程化

    前端開發的工程化要解決的幾個問題

    開發階段前后端分離

    目前國內在前后端協作上主要的幾類方式

    • 前端工程師切好頁面,交給所謂的后端工程師(其實是業務邏輯處理層并非后端服務)然后這些工程師將HTML標簽和樣式要么換成對應的web框架所需要的模版,要么就直接輸出,再結合html中的樣式和js達到想要的效果。

      在整個頁面出來之前需要雙方不停的溝通協作,才能完成。

    • 前后端工程師完全通過resetful接口形式進行對接,前端工程師訪問靜態頁面,然后通過ajax去請求resetful接口解析json,然后展現看起來這種方式前后端分離做得比較干凈,但是這種方式弊端也不少

      會無端增加比較多的請求,本來原來有很多數據可以直接輸出到html頁面上,或者使用模版而現在需要通過http請求后再次處理。

    • 前后端工程師在完成靜態部分開發工作后,將page放到web項目的views下,第一頁數據通過業務邏輯處理層將數據通過模版形式輸出到頁面,而后在頁面中的操作如果有跳頁面的話過程如第一頁,否則都是通過ajax來交互。

      雖然這種方式耦合還是沒完全解開。溝通成本上較第一種少性能上較第二種好,“后端工程師”可以專注寫他們的邏輯,多數交互都是通過resetful接口進行,少部分需要加載模版和頁面的請求另外溝通一下,需要組織哪些數據需要哪些邏輯溝通成本不大,前端工程師也可以focus在前端工作上。性能也不知發起很多無謂的請求。屬于在目前的方式下比較理性的方式。

    • 在第三種的基礎上,將業務邏輯處理成這部分的工作都交給“前端工程師”來做,這部分工程師需要掌握Nodejs開發,HTML5+CSS3+Javascript常規前端開發,可以簡單地理解為全棧工程師,這樣前端(主要是指業務邏輯層面目前的API)可以實現大部分功能,只需要跟真正的后端服務去做通信即可。

      這是最理想的前后端分離方式,目前阿里巴巴有技術團隊在嘗試,溝通成本低,開發統一,都是Javascript為主,唯一的缺陷就是這類人才太少。

    綜合看來,目前第三種方案是比較常規的方案。

    前端分離

    前面講到前后端分離,其實就是在想各種辦法去提升開發效率,而前端本身的一些分離原則則主要是為了后續的維護性著想。

    表現和結構分離

    意思就是不要再html中使用內嵌樣式<div style="backgroud-color: #ff8a01"></div>這是一個bad case,因為這會給后續維護帶來不便,為什么呢?因為假如這是一個很多地方都用到的樣式,那么后續如果相統一變更一些樣式的時候需要單獨找到這一行,而且在html中夾雜css代碼的整體美感也會打折扣。

    行為和表現分離

    盡量不要用Javascript去控制元素的樣式,這會導致用戶在修改的時候,通過樣式表無法找到對應的屬性,這樣的話就需要去人肉review你的Javascript代碼來更改。

    CSS的編程

    傳統的如果頁面有一個統一的桔色按鈕,我們都是通過class來控制,讓所有的地方的button都是用這一種樣式從而來統一控制樣式,每當這個時候你都在想這需要一個變量啊,很遺憾CSS本身并不提供這種編程能力。

    那么

    sass
    less

    邊應運而生了,他讓css代碼的維護性也變成可能。

    Javascript包管理

    傳統的Javascript并沒有包管理的概念,所有的js文件都是放在服務器上某個文件夾,然后通過人肉引入到html之后,所以的依賴其實是認為在維護。

    bower
    npm
    requirejs
    seajs

    等包管理器以及模塊化管理工具都出現了,以及AMD和CMD規范都出來了。

    前端構建

    前端構建的工作主要包括
  • 壓縮代碼
  • css+js+html代碼壓縮
  • 圖片壓縮
  • 字體壓縮
  • 代碼編譯如less,sass之類的或者typescript+coffeescript
  • 合并代碼
  • 環境替換
  • 主流的構建工具
  • gulp
  • grunt
  • fis
  • gulp基于流式的構建工具,構建過程中支持效率快,同時
    grunt老牌的構建工具,
    fis百度fex團隊出品,文檔比較齊全且是中文,國內很多人在使用。

    推薦使用gulp,本人寫的對static項目進行的構建庫static-gulp,配對的還有對web項目進行的views-gulp 這兩個項目目前可用。

    性能

    web產品的性能集中體現在三個方面

  • 網絡開銷方面
  • 瀏覽器渲染DOM
  • 代碼執行效率
  • 傳統前端優化大部分的工作還是集中在網絡開銷上邊,比如 Yahoo 第一條規則就是減少網絡請求。而后起之秀們如Reactjs,Angularjs2,WebComponents等都加入了虛擬DOM的概念,試圖讓Webapp具備媲美原生native應用的體驗。而代碼執行效率方面有大量的最佳實踐,無時無刻不在進行中,但是這個方面除非前人犯錯,否則對一個產品很難一下子明顯優化,另一方面硬件設備在不斷變好。

    大家好才是真的好

    傳統的對web性能優化的點還非常受用,大概分為

    網絡方面
    減少請求個數
  • 代碼合并
  • 圖片sprite
  • 字體合并
  • icon少用圖片,多用矢量圖組合字體
  • 減少請求過程中傳輸的
  • 代碼壓縮
  • 圖片壓縮
  • 字體壓縮
  • 啟用gzip
  • 減少cookie大小
  • 提升響應速度
  • 使用CDN
  • 添加expire
  • 添加Etag
  • Ajax緩存
  • Ajax用GET
  • 請求策略
  • 組件預加載(提前加載)
  • 延遲加載(純粹的懶加載,條件加載)
  • 在網頁全部加在之前,把圖片等資源通過指定src或者backgroud或者
    這兩個策略在做SPA的時候經常用到。

    網絡方面還有諸如避免404,減少DNS查詢,瀏覽器HTTP請求并發限制等

    內容和代碼經驗方面
  • 減少DOM元素數量
  • 樣式表放頁面頂部
  • JS放頁面底部
  • 少用濾鏡和陰影毛玻璃等效果
  • 保證所有組件都小于25K
  • 不要使用html縮放圖片
  • Yahoo
    Webapp優化
    優化篇

    體驗方面
  • 使用touch事件
  • 觸碰區域盡量足夠大
  • 盡量使用CSS3動畫
  • 使用GPU加速
  • 代碼最佳實踐
  • http://coderlmn.github.io/code-standards/
  • https://yuguo.us/weblog/15-best-javascript-practice/
  • https://leohxj.gitbooks.io/front-end-database/content/preference/javascript-best-practise.html
  • 天下武功唯快不破

    yeoman
    看這里看這里

    推薦書籍和框架

  • 《Javascript高級程序設計》值得多次回味的書籍。
  • 《JavaScript語言精粹》
  • 《Javascript DOM編程藝術》
  • 《CSS權威指南(第三版)》
  • HTML暫時就不需要推薦書籍了,跟他最相近的就是DOM編程藝術了,其余的屬性和相關的方法查看網頁即可

    寫在最后

    洋洋灑灑寫了好幾千字,一時間竟不知道該說點啥了,前端是一個涉及面非常廣的工種,不像后端程序環境運行在比較統一的*nix系統,專注到項目本身的工程、性能、可維護等方面即可。而前端不僅僅程序執行環境多樣化,工程、性能同樣是要抓,更多的還要關注交互、展示等體驗甚至要求對美感都有要求。更重要的是前端工程師必須要有一個追求極致的心態,不妥協否則優秀無從談起。

    轉載于:https://www.cnblogs.com/liujb/p/How-to-quick-getting-started-for-Frontend.html

    總結

    以上是生活随笔為你收集整理的How-to-quick-getting-started-for-Frontend的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    99精品视频在线观看 | av免费观看在线 | 福利电影一区二区 | a天堂在线看 | 成年人视频在线观看免费 | 有码一区二区三区 | 天天干天天做天天爱 | 人人爽人人乐 | 手机av在线不卡 | 精品人妖videos欧美人妖 | 91.麻豆视频 | 午夜天天操 | 五月激情综合婷婷 | 国产亲近乱来精品 | 国产一区二区在线免费播放 | 伊人婷婷 | 综合网伊人 | 国产日产亚洲精华av | 韩国精品一区二区三区六区色诱 | 久久99国产综合精品 | 天天人人| 久草综合视频 | 91精品一区国产高清在线gif | 一本一本久久a久久 | 免费看成人片 | 亚洲精品欧美成人 | 99国产一区二区三精品乱码 | 97超视频| 日日躁夜夜躁aaaaxxxx | 日韩亚洲欧美中文字幕 | 99久久婷婷| 国产精品久免费的黄网站 | 日韩不卡高清 | 日韩av网址在线 | 人人狠狠综合久久亚洲婷 | a色视频| 六月丁香综合 | 久久成人精品电影 | 91av在线免费看 | 久久永久视频 | 免费久久视频 | 日韩精品一区二区三区第95 | www.午夜视频 | 99理论片 | 中文有码在线视频 | 亚洲国产中文在线 | 国产精品99免视看9 国产精品毛片一区视频 | 成年人电影免费看 | 国产精品久久久久一区二区 | av成人黄色 | 久草精品网 | 国产精品乱看 | 日韩免费精品 | 韩国一区二区三区在线观看 | 久艹视频免费观看 | 超碰在线最新地址 | 国产中文字幕一区二区 | 午夜精品导航 | 久久免费看 | 国产婷婷久久 | 日本大尺码专区mv | 免费久久99精品国产 | 成人av动漫在线 | 久久精品一区二区三区中文字幕 | 日韩精品视频第一页 | 黄色成人影院 | 国产又黄又爽又猛视频日本 | www.超碰97.com| 国产96在线视频 | 亚洲国产日韩欧美在线 | 午夜久操 | 亚洲一区精品二人人爽久久 | 亚洲男模gay裸体gay | 国内精品小视频 | 三级大片网站 | 国产精品美女网站 | 正在播放亚洲精品 | 伊人精品影院 | 日日操操操 | 奇米影音四色 | 色九九在线| 日韩国产精品一区 | 久久人人看 | 日韩av视屏在线观看 | 国产欧美高清 | www.888av| 一本一本久久a久久 | 天天色天 | 99电影| 久久视频在线观看中文字幕 | 激情伊人五月天 | sesese图片| 国产精品伦一区二区三区视频 | 亚洲区视频在线 | 久久久久9999亚洲精品 | 66av99精品福利视频在线 | 天天插日日射 | 免费精品国产va自在自线 | 在线观看一区视频 | 色婷婷成人 | 91中文字幕在线播放 | 免费午夜视频在线观看 | 狠狠狠色丁香综合久久天下网 | 日韩在线观看影院 | 中文字幕在线免费观看视频 | 欧美色图p | 三级av在线 | 亚洲网久久 | 国产乱对白刺激视频不卡 | 午夜婷婷在线观看 | 日本激情动作片免费看 | 天天色天天干天天 | 天天摸天天操天天舔 | 九九视频免费观看视频精品 | 91视频成人免费 | 最新国产精品久久精品 | 亚洲免费公开视频 | 国产中文在线观看 | 韩日精品在线 | 国产激情电影综合在线看 | 精品国产一区二区三区久久久蜜月 | 天天操天天色天天 | 欧美最新大片在线看 | 国产精华国产精品 | 国产精品久久久99 | 国产精品久久久av久久久 | 亚洲日本一区二区在线 | 99这里只有精品视频 | 亚洲国产成人久久综合 | 99999精品视频 | 日韩欧美精品在线观看 | 日韩成人精品一区二区 | 久久视频在线看 | 97碰在线视频 | 成人中文字幕在线 | 午夜三级影院 | 天天操狠狠操夜夜操 | 久久久久久久久毛片 | 中文字幕中文中文字幕 | 成年性视频 | 色婷婷狠狠五月综合天色拍 | 国产精品美女久久久久久久网站 | 最新中文字幕视频 | 中文永久免费观看 | 国产精品一区免费观看 | 国产精品欧美在线 | 久久久久99999 | 精品国产一区二区在线 | 四虎成人免费观看 | 狠狠艹夜夜干 | 国产91影视 | 黄色av成人在线观看 | 视频在线国产 | 国产视频在线免费 | 久久精品视频观看 | 国产精品k频道 | 五月激情丁香婷婷 | 国产午夜一级毛片 | 国产精品久久一卡二卡 | 免费观看完整版无人区 | 久久视频在线免费观看 | 91色亚洲 | www.伊人色.com | 中文字幕在线视频免费播放 | 国产在线观看一区 | 丁香激情综合 | 亚洲午夜电影网 | 91在线精品播放 | 青青啪 | 国产精品久久久久久电影 | 91爱爱免费观看 | 欧美视频网址 | 欧美日韩免费视频 | 亚洲欧美va | 国产美女在线免费观看 | 黄色三级免费看 | 性色av免费观看 | 日韩久久精品一区二区三区下载 | 粉嫩高清一区二区三区 | 国产亚洲精品久久久久秋 | 国产男男gay做爰 | 特黄特色特刺激视频免费播放 | 视频在线观看亚洲 | 99精品视频观看 | 亚洲国内精品在线 | 国产中文自拍 | 人人爽人人爽人人爽学生一级 | 精品久久福利 | 国产精品久久久久一区二区 | 黄色大片免费播放 | 亚洲午夜精品电影 | 国产欧美精品在线观看 | 国产不卡在线看 | 欧美在线视频a | 中文字幕亚洲精品日韩 | 精品美女在线观看 | 97超级碰碰碰碰久久久久 | 国产精品破处视频 | 日韩大片在线免费观看 | zzijzzij亚洲日本少妇熟睡 | 国产亚洲精品久久网站 | 区一区二区三区中文字幕 | 国产精品久久久久久久婷婷 | 成年人黄色大片在线 | 性色视频在线 | 中文字幕av影院 | 99国产在线视频 | 毛片网站在线观看 | 国产在线不卡一区 | 日本女人的性生活视频 | 91少妇精拍在线播放 | 国产精品第52页 | 久草在线久草在线2 | 97色婷婷人人爽人人 | 在线亚洲日本 | 亚洲永久精品在线 | 久久99精品热在线观看 | 久久久在线免费观看 | 国产精品入口麻豆 | 日韩欧美视频在线观看免费 | 91丨九色丨国产女 | 亚洲国产成人av网 | 五月婷网| 国产精品成人一区二区三区 | 国产探花视频在线播放 | 亚洲三级网 | 久久精品99久久久久久2456 | 中文字幕乱视频 | 免费在线观看一区二区三区 | 91麻豆.com| 特级西西444www大胆高清无视频 | 69xx视频| 亚洲日本va中文字幕 | 国产精品爽爽爽 | 欧美一级片免费在线观看 | 久久免费播放视频 | 国产精品婷婷午夜在线观看 | 三级黄色网络 | 五月婷婷激情六月 | 一区二区中文字幕在线播放 | 国产高清亚洲 | 玖玖在线免费视频 | 三级av在线播放 | 欧美aa一级片 | 久久视精品 | 日韩国产在线观看 | 毛片无卡免费无播放器 | 日韩中文在线电影 | 综合激情婷婷 | 国产中文字幕av | 亚洲成人精品影院 | 伊人春色电影网 | 天天艹日日干 | 91免费看片黄 | 久久99久久99精品免观看软件 | 看黄色91| 亚洲精品国偷拍自产在线观看 | 亚洲电影院 | 夜夜摸夜夜爽 | 欧美最新大片在线看 | 国产午夜精品免费一区二区三区视频 | 亚洲黄色在线观看 | 国产99免费 | 在线播放日韩 | 色婷婷国产在线 | 中文字幕国产亚洲 | 偷拍福利视频一区二区三区 | 天天干天天天 | 亚洲精品高清视频 | 激情综合网五月激情 | 中文有码在线视频 | 久久久免费看视频 | 欧美久久久久久久久中文字幕 | 精品一区二区三区久久久 | 国产精品ⅴa有声小说 | 国产最新在线视频 | 丝袜美腿在线视频 | 久久精彩视频 | 91av在线看 | 久久一久久 | 成人污视频在线观看 | 久久婷五月 | 狠狠干电影 | 国产香蕉97碰碰碰视频在线观看 | 欧美a视频| 99精品国产一区二区 | 夜夜夜影院 | 亚洲三级网 | 狠狠干综合 | 麻豆一区在线观看 | 国产精品video爽爽爽爽 | 天天插伊人| 色橹橹欧美在线观看视频高清 | 久久夜色精品国产欧美一区麻豆 | 国产成人av片 | 99热最新地址 | 国产一区视频免费在线观看 | 特级西西444www高清大视频 | 天天干干| 中文在线a天堂 | 天天天天天天天天操 | 成人午夜电影在线 | 丁香婷婷深情五月亚洲 | 国产欧美日韩精品一区二区免费 | 97中文字幕 | 99视频在线精品国自产拍免费观看 | 婷婷在线视频 | 天堂av在线网 | ww视频在线观看 | 精品久久久亚洲 | 91九色在线播放 | 国产精品欧美日韩 | 欧洲精品视频一区二区 | 国产五月婷 | 91麻豆精品国产 | 在线免费精品视频 | 日韩av中文字幕在线免费观看 | 天天爱天天色 | 麻豆视频91 | 日韩欧美精品一区二区三区经典 | 国产午夜精品一区二区三区在线观看 | 亚洲经典视频 | av一级一片 | 天天操天天干天天操天天干 | 丝袜美女在线观看 | 在线91网| 国产自产高清不卡 | 97超碰.com| 成人电影毛片 | 一区二区理论片 | 日韩精品一区二区在线视频 | 久草精品视频在线观看 | 国产精品色 | 国产精品2019| 免费看黄的视频 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 96久久精品 | www.天天综合 | 五月婷婷操 | 91中文字幕在线视频 | 免费高清在线一区 | 色婷婷狠狠五月综合天色拍 | 夜又临在线观看 | 色www永久免费 | 亚洲视频一 | 天天干天天射天天爽 | 99热这里精品 | 欧美精品中文字幕亚洲专区 | 欧洲精品在线视频 | 综合色亚洲 | 久久女同性恋中文字幕 | 亚洲干| 欧美一级爽| 国产韩国精品一区二区三区 | 久久久久久高潮国产精品视 | 亚洲精品综合一二三区在线观看 | 午夜av激情| 国产高清在线精品 | 成年人在线免费看片 | 麻豆影音先锋 | 中文字幕精品一区二区三区电影 | 国产专区精品视频 | 成人a级免费视频 | 国内精品久久久久影院优 | 波多野结衣视频在线 | 丁香久久久 | 成人午夜电影网 | 99r在线视频| 91aaa在线观看 | 四虎在线观看 | 中文字幕日本特黄aa毛片 | 91精品成人久久 | 伊人狠狠操 | 国产日韩视频在线播放 | 欧美精品视 | 97在线看 | 午夜精品一区二区三区在线观看 | 午夜在线看 | 国产在线精品一区二区不卡了 | 99re在线视频观看 | 国产一级片免费观看 | 91免费在线看片 | 日韩高清毛片 | 欧美久久久久久久久中文字幕 | 麻豆视频网址 | 2022中文字幕在线观看 | 91成人精品一区在线播放 | avlulu久久精品 | 成人av免费看 | 黄色三级免费 | 在线观看日韩中文字幕 | 免费网站看v片在线a | 激情丁香5月 | 手机看片国产 | 在线成人欧美 | 玖玖精品视频 | 深爱激情亚洲 | 精品成人网| 毛片精品免费在线观看 | 91资源在线播放 | 欧美亚洲成人免费 | 中文字幕一区二区三区四区视频 | 日韩视 | 97精品国产91久久久久久久 | 国产免费一区二区三区网站免费 | 久久亚洲欧美日韩精品专区 | 欧美激情xxxx性bbbb | 2022国产精品视频 | 天天综合色天天综合 | 亚洲在线不卡 | 午夜私人影院久久久久 | 日韩网站在线观看 | av黄色在线观看 | 欧美成人xxxxxxxx| 欧美日韩国产三级 | 国产 日韩 欧美 中文 在线播放 | 国产精品毛片一区二区三区 | 香蕉网址 | 成人小视频在线观看免费 | 国产精品久久久久久一区二区 | 中文字幕 国产专区 | 香蕉91视频| 在线免费观看羞羞视频 | 夜夜爽天天爽 | 亚洲最大成人网4388xx | 欧美日韩国产二区三区 | 香蕉视频啪啪 | 亚洲综合网站在线观看 | 麻豆一区二区 | 2022中文字幕在线观看 | 麻豆视频免费看 | 亚洲欧美国产精品18p | 五月婷婷黄色网 | 国产在线国产 | 99爱精品视频 | 日韩电影在线观看一区二区三区 | 99久久www免费 | 久久免费资源 | 在线电影a| 一区二区三区高清在线观看 | 一区二区不卡 | 999久久久久久久久6666 | 久久精品视频网站 | 91精品国产自产在线观看永久 | 伊人五月天 | 五月天久久久 | 女人高潮特级毛片 | 欧美韩国日本在线 | 亚洲性xxxx | 色婷婷97 | av成人动漫在线观看 | 欧美一区免费观看 | 在线黄色av电影 | 狠狠夜夜 | 精品国产一区二区三区久久久蜜臀 | 视频在线在亚洲 | 国产资源在线观看 | 欧美精品久久久久久久久免 | 五月婷婷视频在线观看 | 亚洲一区二区高潮无套美女 | 久久精品免费播放 | 久久视频一区二区 | 伊人网综合在线观看 | 国产日韩欧美在线 | 国产99久久久精品 | 天天色天天射综合网 | 97电影网手机版 | 国产精品99久久久久的智能播放 | 欧美激情在线看 | 亚洲黄色app | a精品视频 | 日韩av中文字幕在线免费观看 | 黄色成年 | 国内精品久久久久久久久 | 久久久综合电影 | 九色porny真实丨国产18 | 亚洲精品午夜久久久久久久 | 国产精品永久在线观看 | 美州a亚洲一视本频v色道 | 国产电影黄色av | 亚洲永久国产精品 | 久久久五月天 | 国产亚洲精品久久 | 91视频88av| 久要激情网 | 国产又粗又猛又色又黄网站 | 成人在线免费观看网站 | 国产小视频在线 | 97视频免费在线看 | 日韩高清在线一区 | 在线观看中文字幕2021 | 久久久久久久av | 人人干干人人 | 国产91精品看黄网站在线观看动漫 | 国产精品久久久久久久久久99 | 五月激情视频 | 日韩一级电影网站 | 久久久久免费精品视频 | 97高清视频| 久久少妇免费视频 | 亚洲女人天堂成人av在线 | 麻豆传媒视频在线 | 久草国产视频 | 狠狠色狠狠综合久久 | 波多野结衣在线观看视频 | 中国精品少妇 | 天天干天天干天天色 | 成人久久18免费网站麻豆 | 综合色站导航 | 亚洲精品美女免费 | 日韩和的一区二在线 | 欧美一性一交一乱 | 99热官网 | 久久精品久久精品久久39 | 中文字幕在线观看一区 | 亚洲视频aaa | 91亚洲国产 | 69精品久久久 | 超碰在线公开免费 | 国产麻豆精品传媒av国产下载 | 国产精品精品久久久久久 | 国产精品久久久久久久电影 | 在线观看91 | 国产成视频在线观看 | 98超碰在线观看 | 日韩精品在线免费播放 | 久久久久久久久久久久影院 | 激情黄色一级片 | 欧美坐爱视频 | 国产手机视频精品 | 国产青青青 | 亚洲综合网站在线观看 | 国产精品一区专区欧美日韩 | 亚洲国产精品久久久久婷婷884 | www.狠狠操 | 久久理论电影网 | 日日躁你夜夜躁你av蜜 | 久久综合精品一区 | 婷婷狠狠操 | 日韩免费播放 | 色婷婷视频在线 | 久久精品免费电影 | 久久精品一区二区 | 97视频资源 | 麻豆国产精品视频 | 久久精品久久久久久久 | 久久69av| 啪啪免费视频网站 | 色婷婷影视 | 精品国产不卡 | 国产一区精品在线 | 国产成人黄色网址 | 成人久久久久久久久久 | 日本aaa在线观看 | 成人中文字幕av | 黄色.com| 亚洲欧洲精品久久 | 国产无套视频 | 久久综合九色综合网站 | 亚洲全部视频 | 国产中文字幕一区 | 天天舔天天射天天操 | 国产污视频在线观看 | 夜夜操狠狠干 | 福利视频网址 | 香蕉视频在线视频 | 中文字幕在线观看网站 | 欧美a级在线 | 伊人久操 | 国产综合久久 | 人人艹视频 | 成人毛片在线观看 | 精品国产自在精品国产精野外直播 | 色婷婷88av视频一二三区 | 91免费国产在线观看 | 精品国产一区二区三区久久久蜜月 | 国产一卡久久电影永久 | 免费看片网站91 | www.黄色片网站 | 欧美男同视频网站 | 天天曰天天射 | 久久色中文字幕 | 精品国产1区 | 国产精品久久久久久久久久久久久久 | 中文字幕在线看视频 | 欧美一级小视频 | 久久99热久久99精品 | 精品一区电影国产 | 超碰.com| 日韩理论片在线 | 日韩二三区 | 国产黄色精品视频 | 狠狠干夜夜爱 | 日韩大片在线观看 | 日批视频在线观看免费 | 91电影福利| 丁香婷婷自拍 | 久久99久久久久久 | 黄色软件大全网站 | 久久久午夜影院 | 免费看污的网站 | 久久黄色a级片 | 国产成人一二片 | 九九在线免费视频 | 91大神电影 | 视频在线观看亚洲 | 999电影免费在线观看2020 | 国产a精品| 中文字幕精品一区久久久久 | 国产一区二区久久精品 | 久久综合九色欧美综合狠狠 | 东方av在| av久久在线| 国产高清久久久久 | 奇米影视999 | 欧美日韩18| 国产精品一二三 | 色多多污污在线观看 | 国产一区在线播放 | 在线观看aa| 午夜一级免费电影 | 91c网站色版视频 | 超碰在线94| www国产亚洲精品久久麻豆 | 日本久久视频 | 中文字幕精品一区久久久久 | 亚洲尺码电影av久久 | 日本中文在线 | 91麻豆国产福利在线观看 | 欧美午夜理伦三级在线观看 | 国产福利专区 | 丁香婷五月 | 爱情影院aqdy鲁丝片二区 | 免费看日韩 | 九9热这里真品2 | 亚洲综合精品视频 | 国产理论一区二区三区 | 西西www444| 天天综合入口 | 在线观看播放av | 五月婷婷视频在线 | 婷婷九月激情 | 尤物97国产精品久久精品国产 | 色综合久久久久综合99 | 91视频 - 88av | 成人黄色片在线播放 | 久久免费国产视频 | 国产成人综合精品 | 97在线免费| 韩国精品一区二区三区六区色诱 | 国产免费观看久久黄 | 亚洲人xxx | 亚洲电影一区二区 | 精品国产精品久久一区免费式 | 日本女人b| www.黄色网.com | 一区二区丝袜 | 97超碰成人在线 | 色a在线观看 | 免费亚洲一区二区 | 91九色在线视频观看 | 中文免费在线观看 | 国内精品久久久久久久久久清纯 | av动态图片 | 国产一区91 | 国产丝袜在线 | 在线观看一区视频 | 国产精品免费视频一区二区 | 日日干干 | av观看在线观看 | 美女很黄免费网站 | 久久av伊人 | 久久狠狠婷婷 | 波多野结衣一区二区 | 狠狠的日| 美女黄频在线观看 | 中文在线字幕免费观 | 色婷婷国产精品一区在线观看 | 四虎在线影视 | 中文字幕中文字幕在线中文字幕三区 | 久久免费视频一区 | 中文国产字幕在线观看 | 久久免费视频在线 | 少妇bbb好爽 | 国产尤物在线 | 亚洲乱码国产乱码精品天美传媒 | 精品少妇一区二区三区在线 | 国产麻豆电影 | av成人免费网站 | 日韩欧美一区二区不卡 | 在线91视频 | 日韩字幕 | 亚洲免费在线播放视频 | 成人h视频在线播放 | 在线国产中文字幕 | 伊人婷婷综合 | 色在线亚洲 | 国产特级毛片aaaaaaa高清 | 国产精品久久片 | 欧美日韩视频免费看 | 成人久久影院 | 狠狠色狠狠综合久久 | 一区二区电影在线观看 | 成人av资源网站 | 国产亚洲视频中文字幕视频 | japanesexxxxfreehd乱熟 | 国产专区日韩专区 | freejavvideo日本免费 | 天天操天天透 | 精品国产伦一区二区三区观看方式 | 久久精品国产亚洲aⅴ | 国产亚洲综合精品 | 国产视频亚洲 | 国产在线视频在线观看 | 香蕉看片| 超碰在线人人97 | 国产毛片久久 | 人人超碰人人 | 成人av一区二区兰花在线播放 | 亚洲免费不卡 | 国产美腿白丝袜足在线av | 婷婷综合 | 色瓜| 天堂中文在线视频 | 福利二区视频 | 精品国产伦一区二区三区免费 | 免费观看国产成人 | 美女性爽视频国产免费app | 国产免费黄视频在线观看 | av黄色免费网站 | 一区二区三区韩国免费中文网站 | av免费在线观看1 | 国产精品网红直播 | 亚洲一级影院 | 国产精品门事件 | 久久99久久精品 | 丁香激情网 | 日韩视频三区 | 国产情侣一区 | 免费精品人在线二线三线 | 黄色日本片 | 天天狠狠干 | www免费看| 久久1区 | 免费国产亚洲视频 | 久久在线精品 | 亚洲成人网在线 | 又黄又刺激的视频 | 久久久久www | 狠狠的操狠狠的干 | 懂色av懂色av粉嫩av分享吧 | 亚洲aaa级| 久久99国产综合精品免费 | 国产精品亚洲人在线观看 | 丁香午夜婷婷 | 日操操 | 久久久久免费视频 | 中文字幕在线视频免费播放 | 中文字幕av网站 | 国产精品永久在线观看 | 久草在在线视频 | 国产精品久久久av久久久 | 国产98色在线 | 日韩 | 国产一区二区精品久久91 | 美女久久99 | 日韩亚洲在线观看 | 国产色a在线观看 | a色视频 | 成人影片免费 | 欧美一级片在线观看视频 | 成人91免费视频 | 日韩三级在线 | 国产精品久久久久久久久毛片 | 中文字幕av日韩 | 天天做夜夜做 | 国产不卡在线观看视频 | 777奇米四色| 成人精品一区二区三区电影免费 | 国产免费又粗又猛又爽 | 欧美国产精品久久久久久免费 | 久久美女电影 | 久久成人综合 | 国产字幕av| 久久夜夜爽 | 九色琪琪久久综合网天天 | 国产一线天在线观看 | 免费看一级 | 欧美日韩一区二区久久 | 亚洲视频一 | 日韩成人欧美 | 五月在线视频 | 国产97在线播放 | 国产精品毛片一区视频 | 99热99热| 最近中文字幕在线播放 | 亚洲欧美日韩精品久久久 | 天天爽夜夜操 | 精品久久久久久亚洲综合网 | 在线精品在线 | 中国黄色一级大片 | 手机av在线网站 | 欧美成年性 | 999久久久久久久久6666 | 天天综合人人 | 黄色一级在线视频 | 91精品久久久久久久91蜜桃 | 国产99久久久精品视频 | 日日干,天天干 | 亚洲精品观看 | 日韩无在线 | 国产尤物视频在线 | 国产一区av在线 | 欧美激情精品久久久久久变态 | 最近中文字幕国语免费av | 日日成人网 | 黄色成人在线观看 | 激情视频一区二区三区 | 色在线网站 | 国产亚洲精品成人av久久ww | 中文字幕美女免费在线 | 中文乱幕日产无线码1区 | av黄色免费看 | 亚洲精品视频在线播放 | 黄色99视频 | 黄色一级大片在线免费看国产一 | 综合国产在线 | 欧美日韩性视频在线 | 一区二区三区四区五区在线视频 | 丁香花中文在线免费观看 | 人人爽人人片 | 国产精品视频免费观看 | 亚洲视频观看 | 亚洲国产中文字幕 | 久久精品这里都是精品 | 日日爽夜夜操 | 国产九九精品 | 中文字幕第一页在线 | 91九色蝌蚪在线 | 99r在线播放| 成人免费在线视频观看 | 婷婷久久综合九色综合 | 国产97在线观看 | 黄色一二级片 | 午夜在线观看 | 久久久久久久久久久久久久免费看 | 人人添人人澡人人澡人人人爽 | 亚洲国产成人精品在线 | 在线观看网站你懂的 | 欧美日韩在线视频免费 | 日韩精品极品视频 | 婷婷久久五月天 | 国产一区二区三区四区在线 | 婷婷六月天丁香 | 日韩精品中文字幕一区二区 | 久草国产视频 | 五月婷婷激情六月 | 最新久久免费视频 | 91精品一区二区三区蜜臀 | 久久精品第一页 | 日韩黄色在线观看 | 久久婷婷网 | 成人午夜黄色影院 | 国产精品ⅴa有声小说 | 成人一区不卡 | 欧美在线观看小视频 | 99久久久国产精品免费观看 | 在线播放第一页 | 午夜视频福利 | 五月婷婷,六月丁香 | 日韩欧美亚州 | 成人黄色毛片 | 欧美久久久久久久久中文字幕 | 天天爽综合网 | www.久久视频| 四虎永久精品在线 | 四虎国产精品永久在线国在线 | 国产亚洲精品久久19p | 久久久一本精品99久久精品66 | 97视频精品 | 精品视频免费观看 | 国产成人一级 | 亚洲免费永久精品国产 | 亚州精品一二三区 | se视频网址 | 狠狠色丁香婷婷综合橹88 | 亚洲黄色片在线 | 在线观看免费福利 | 九色91福利| 激情丁香综合五月 | 黄色福利网站 | 97在线影视 | 免费看色的网站 | 日韩一区精品 | 国产中年夫妇高潮精品视频 | www成人av | 91精品色 | 国产男女免费完整视频 | 国产一区电影在线观看 | 国产91精品久久久久 | 911免费视频| 五月婷婷亚洲 | 亚洲国产色一区 | 色偷偷88欧美精品久久久 | 狠狠躁日日躁狂躁夜夜躁av | 婷婷丁香七月 | 亚洲国产中文在线观看 | 国产精品久久久久久久久久久久午夜片 | 天天在线免费视频 | 91视频大全 | 亚洲热久久 | 麻豆免费视频 | 日本丰满少妇免费一区 | 成人高清av在线 | 亚洲精品乱码久久久久久高潮 | 五月婷婷在线综合 | 国产这里只有精品 | 91系列在线观看 | 国产精品综合在线 | 精品国产123 | 久久精品一区二区三区四区 | 欧美日韩国产精品一区二区 | 色无五月 | 久久一区二区三区四区 | 天天爽网站 | 中文字幕 国产专区 | 超碰97人人爱 | 久草在线网址 | 色人久久| 91成人亚洲 | 婷婷丁香激情网 | 久久这里精品视频 | 超碰免费在线公开 | 日韩网页 | 青青久视频 | 天天草综合 | 色婷婷激婷婷情综天天 | 亚洲成年人av | 久久伦理| 欧美精品久久 | 九九九视频精品 | 亚洲视频电影在线 | 91成品视频| 97免费| 樱空桃av | 波多野结衣一区 | 国产精品成人免费精品自在线观看 | 国产在线观看免费av | 免费黄色av | 国产区在线视频 | 免费a v网站| 日韩在线视频免费播放 | 狠狠插天天干 | 人人插人人射 | 日韩高清www | av三区在线| 99r精品视频在线观看 | zzijzzij日本成熟少妇 | 亚洲精品免费在线 | 成人福利在线播放 | 97在线观看视频免费 | 国产一区视频在线播放 | 岛国大片免费视频 | 中文字幕视频网站 | 一区二区三区韩国免费中文网站 | 亚洲欧美偷拍另类 | 在线免费黄色片 | 欧美成人免费在线 | 亚洲精品国产欧美在线观看 | a黄色一级片 | av免费片 | 乱子伦av| 永久免费观看视频 | 久久免费看毛片 | 久草久热 | 国产免费成人 | 九九热精品国产 | 国产91精品高清一区二区三区 | 激情婷婷欧美 | 日韩a级黄色 | 日本三级不卡视频 | 国产在线视频一区 | 亚洲国产黄色 | 成年人app网址 | 午夜免费福利视频 | 亚洲天堂网站 | 国产成人久久精品亚洲 | 黄色网址国产 | 一区二区国产精品 | 国产视频1区2区3区 久久夜视频 | 欧美高清视频不卡网 | 久久免费高清视频 | 最近中文字幕在线播放 | 在线成人中文字幕 | 国产视频一区在线播放 | 丁香婷婷久久久综合精品国产 | 亚洲精品资源 | 日韩欧美高清在线观看 | 91色在线观看视频 |