web開發(fā)小部分單詞

?Sass=scss編程

Sass 是css預(yù)處理器

css預(yù)處理器用編程思維寫一些可以轉(zhuǎn)成css的東西

優(yōu)點(diǎn):更加簡(jiǎn)潔? 適應(yīng)性更強(qiáng)? 可讀性更佳?? 更易于代碼的維護(hù)

1 .Sassscss 區(qū)別

??????? 1 .文件擴(kuò)展名不同(后綴名)

??????? 2 .語法不同

Sass語法:???????div????????? color:red

Scss語法:????div{????? color:red;???? }

2 .Cmd命令

1 .ping_??:檢測(cè)你的網(wǎng)絡(luò)通不通

2 .ipconfig_:查看本機(jī)IP

3 .cls_:清屏

4 .D:_ :切換盤符

5 .?Tab:自動(dòng)補(bǔ)全文件名稱

6 .???/?????? 進(jìn)入根源目錄

7 .??./?????? 同級(jí)

8 .??../???? 上一級(jí)

9 .??cd_?????? 進(jìn)入文件夾

10 .?dir_?? 當(dāng)前文件下的所有文件

11 .?path??? 環(huán)境變量

12 .?安裝的文件名_-v??? 查看版本號(hào)

13 .gem?install?? sass???? 安裝sass

3 .scss裝換為css文件

命令行(1.2.3)

1 .sass_a.scss????? 出現(xiàn)的scss文件

2.sass_a.scss_a.css????? scss裝換為css文件

3 .sass_--watch_a.scss:a.css????? 監(jiān)聽sass文件到css文件

4 .通過編輯器

???? 輸出方式?? (--style?nested)

1 . nested?? 嵌套輸出方式(開發(fā))??格式:? red构诚;}

2 .? compact??? 緊湊輸出方式??? (代碼在一行)

3 .? expanded???? 展開輸出方式??? (我們常用)

4 .? compressed????? 壓縮輸出方式???? (項(xiàng)目上線時(shí)候用)

5 .軟件編譯

6 .sass聲明變量??? ??(格式??? $a:20;

1 .調(diào)用變量

?1 .直接調(diào)用(屬性值調(diào)用)

??? 格式:???$width:10;???? div{width:? $width;}

2 .插值使用(選擇器?? 屬性名調(diào)用)

???????????格式:? $width:width;?? .div{#{$width}:100px;}

$box:".box";??? #{$box}{width:100px;}

7 .變量

1 .普通變量(全局變量)格式? $color:red;? div{color:$color;}

2 .局部變量?? 格式? nav{$color:blue;? background: $color;}

3 .默認(rèn)變量? 迅涮!Default(用于sass引入scss文件)格式 $color:red !Default;

8 .嵌套方法(3種) & = 父級(jí)

1 .選擇器嵌套?? 格式nav{ a{color: $color;header &{color:$color;}}}?

2 .屬性嵌套?? 格式 font{ border:{top: 1px solid red;}}

3 .偽類嵌套? 格式.clearfix{&:before,&after{color:red;}&after{background: red;}}?

9 .混合宏? @mixin? a{} div{@include a}

1 .不帶參數(shù)???? 格式 @mixin a{color:red}

2 .帶默認(rèn)參數(shù)???? 格式 @mixin a($wdith:5px){width:$wdith}

3 .帶參數(shù)????? 格式 @mixin border($x,$y){border:$x;width: $y;}

調(diào)用參數(shù) .nav{@include

border(50px,100px)}

4 .復(fù)雜的混合宏

格式@mixin

box-shadow($shadow...) {box-shadow: 10px 5px red;}

調(diào)用參數(shù) div{ @include

box-shadow}

10 .sass繼承? (繼承的是代碼塊)

1 .@extend 繼承的是標(biāo)簽名辆影,在css文件中div和p 同存在

格式 div{color:

red;}p{font-size: 12px; @extend div;

2 .sass占位符(%)(%后的代碼不在css文件中出現(xiàn))

格式? %nav{width: 10px;}? div{@extend %nav;}

%nav 的代碼:不被@extend調(diào)用? 在css中div不出現(xiàn)

???????????:調(diào)用@extend????? 在css中%nav不出現(xiàn)

3 .優(yōu)點(diǎn):更加干凈簡(jiǎn)潔

11 .混合宏?繼承?? 占位符的區(qū)別

混合宏:不會(huì)合并代碼可傳參??? 格式@mixin a{color: red;}div{@include a}

繼承:可以合并代碼,不能傳參?

占位符:不調(diào)用不產(chǎn)生css代碼 css中%后的代碼不顯示

12 .注釋

1 .//css不編譯

2 ./*?*/? css會(huì)編譯

3 .@charset “utf-8”文件編碼(文字)

13 .sass數(shù)據(jù)類型(6種)

1 .數(shù)字類型 number :有數(shù)字就為number

2 .字符串 string :有引號(hào):“文字”趁仙,無引號(hào):英文

3 .顏色 color:red?? #.....? rgba()

4 .布爾類型:true? false

5 .空:null

6 .值列表? :空格逗號(hào)分開

格式:(1)margin:10px 20px 30px 40px;? (2)font-family:“..”,“..”;

14 . sass運(yùn)算 ?注意空格

1 .加( + ):?jiǎn)挝唤y(tǒng)一???????? 格式 width:20px + 8或8px;

2 .減( - ):?jiǎn)挝唤y(tǒng)一????????? 格式 width:20px - 8或8px;

3 .乘( * ):一個(gè)有單位一個(gè)無單位??????格式 width:20px * 8;

4 .除( / ):一個(gè)有單位一個(gè)無單位

????方式一:()括起來:width:(100px / 2)

????方式二:變量的情況:$x:10px;$y:5;? width:$x / $y

????方式三:有其他運(yùn)算符:width:100px / 2 + 3;

5 .顏色運(yùn)算:只允許16進(jìn)制的顏色運(yùn)算

格式:color:#1b2032 +

#307149桶癣;有一位大于16 就-16

6 .字符串運(yùn)算:

方式一:左邊帶“”表箭,右邊無引號(hào),css 中帶“”镇匀;

方式二:左邊不帶“”照藻,右邊有引號(hào),css中無引號(hào)汗侵;

[if !supportLists]15.???[endif]sass控制命令

1 .@if 條件判斷{對(duì)}@else {否}@else if 條件判斷{ }

格式:$w:10px;???? div{ width:$w;@if $w>20px{color:red;}

@else {color:blue;}或 @else if 條件判斷{ }}

2 .@for循環(huán)語句

方式一:@for $i from 1to 2 {.div#{$i}{width:1px}}? From to? :包開始不包結(jié)束

方式二:@for $i from 1through 2 {}??????? From through? 包開始包結(jié)束

3 .@while 語句不滿足不執(zhí)行滿足才執(zhí)行

格式? @while條件{條件為true執(zhí)行}

$i:5;@while $i>0 {div{width:$i *

2px}$i:$i - 1}

4 .@each 便利值列表

??? 格式 @each $i in top幸缕,bottom{div{border-#{$i}:1px; }

16.sass與less的區(qū)別

LESS是基于JavaScript運(yùn)行,所以LESS是在客戶端處理.

Sass是基于Ruby的,是在服務(wù)器端處理的晰韵。

less沒有輸出設(shè)置发乔,sass有4種輸出設(shè)置

sass有if for循環(huán),less沒有

less定義變量用@

scss定義變量用$

Zepto? 現(xiàn)代高瀏覽器的js 庫 移動(dòng)端事件? (on/off)

格式?? $(“div”).Tap(function(){

})

1 .Touch

1.Tap????輕觸屏幕

2.singleTap? 單擊

3.doubleTap? 雙擊

4.longTap??長(zhǎng)按 >750ms 觸發(fā)

2 .滑過事件

?????1.swipe? 任意滑

?????2.swipeLeft?? 左滑

?????3.swipeRight? 右滑

?????4.swipeUp???? 上滑

??5.swipeDown?? 下滑

3 .解決bug??

document.addEventListener("touchstart",function(event){event.preventDefault();})

4 .原生js / jq 移動(dòng)端的事件

要用事件綁定? 格式

?????div.addEventlistener(“touchstart”,function(){})

1 .ontouchstart??? 開始觸碰????? /? touchstart

2 .ontouchmove??? 屏幕上移動(dòng)???? /? touchmove

3 .ontouchend???? 觸碰結(jié)束?????? /? touchend

5 .Zepto 與 jq 區(qū)別

1 .zepto針對(duì)移動(dòng)端雪猪,不支持ie10以下

2 . jq Dom操作時(shí)栏尚,不能設(shè)置id,???? zepto可以

3 .jq的width()和height() 會(huì)忽略padding和border浪蹂, zepto是根據(jù)盒模型計(jì)算

?? 格式:var width=$(“img”). width()

4 .zepto的? each()只能遍歷數(shù)組抵栈,不能遍歷對(duì)象

?Swiper

1 .鏈接結(jié)構(gòu)

???????

2 .html結(jié)構(gòu)

class="swiper-container">

class="swiper-wrapper">

輪播的圖

輪播的圖

class="swiper-pagination">分頁器

?? ?

左箭頭

?? ? 右箭頭

?? ? 滾動(dòng)條

3 .js結(jié)構(gòu)

???? var mySwiper = new Swiper('.swiper-container',{})?

4 .配置選項(xiàng)

?? 1.* loop: true,自動(dòng)循環(huán)播放(true播放? false不播放)

?? 2.*autoplay:3000,? 自動(dòng)播放切換時(shí)間默認(rèn)0

?? 3.* autoplayDisableOnInteraction: true,不執(zhí)行

用戶操作完swiper,是否禁止自動(dòng)播放,false 執(zhí)行

?? 4.autoplayStopOnLast:true,停止自動(dòng)切換

?????????播放到最后一張圖停止? false不停止自動(dòng)切換

?? 5. grabCursor:true,改變鼠標(biāo)的形狀(小手)

?? 6.* direction:vertical垂直輪播默認(rèn)horizontal 水平

?? 7. initialSlide:0,設(shè)定初始的Slide

?? 8.* speed:300, 滑動(dòng)時(shí)間

?? 9.* prevButton:'.swiper-button-prev',左鍵

? 10.* nextButton:'.swiper-button-next',右鍵

? 11.* effect:‘flip’ 3d 翻轉(zhuǎn)‘coverflow’3d流‘cube’方塊‘fade’淡入

? 12. SlidesPerview:2,設(shè)置同時(shí)顯示slide的數(shù)量

? 13.* pagination : '.swiper-pagination',開啟分頁器?

? 14.* paginationClickable :true,手點(diǎn)小原點(diǎn)圖動(dòng)

? 15.paginationElement:‘a(chǎn)’設(shè)置原點(diǎn)的標(biāo)簽

? 16. paginationType:”fraction”,分頁(1/3)‘bullets’原點(diǎn)

‘progress’進(jìn)度條‘custom’自定義

???? 17 .* scrollbar:‘swiper-scrollbar’開啟滾動(dòng)條

? 18. scrollbarDraggable:true,?? 滾動(dòng)條控制slide

5 .回調(diào)函數(shù)

1 .onTouchstart:function(){} 開始觸碰是執(zhí)行函數(shù)

??????Touchmove觸碰屏幕移動(dòng) Touchend 觸碰結(jié)束

?? 2.* onSlideChangeStart:function(){}開始切換時(shí)執(zhí)行函數(shù)

6 .Swipre方法(對(duì)象名.方法)

?? 1.* mySwiper.activeIndex 返回當(dāng)前slide的下標(biāo)

2 .mySwiper.clickedIndex 返回最后點(diǎn)擊的slide的下標(biāo)

?? 3.* muSwiper.slideTo()跳轉(zhuǎn)到某一個(gè)指定的slide上

?? 4.*onlyExternal? 禁止拖動(dòng)? 雙輪播時(shí)需要

IScroll

1 .html結(jié)構(gòu) ??

  • 第一

2 .js 結(jié)構(gòu) ???????var myiscroll=newIScroll("#wrapper",{})

3 .配置參數(shù)

??1. bounce:false,false無彈力效果默認(rèn)true有彈力效果

2.mouseWheel:true,開啟鼠標(biāo)滾輪?false=默認(rèn)關(guān)閉鼠標(biāo)滾輪

3.scrollbars:true,開啟滾動(dòng)條?false=默認(rèn)關(guān)閉滾動(dòng)條

4.interactiveScrollbars:true,拖動(dòng)滾動(dòng)條 false 無拖動(dòng)

5.fadeScrollbars:true,滾動(dòng)條淡入淡出?false無效果

6.scrollY:true,豎著滾動(dòng)???

7.scrollX:true,橫著滾動(dòng)

4 .問題堅(jiān)決方案

當(dāng)內(nèi)容比父元素wrapper小的時(shí)候坤次,就不能滾動(dòng)了,可以動(dòng)態(tài)給內(nèi)容設(shè)置

min-height,讓內(nèi)容的最小高度比父元素大1像素斥赋,參考:

if($("#wrapper>div").height()<$("#wrapper").height()){\????? $("#wrapper>div").css({'min-height':$('#wrapper').height()+1+'px'})}?

5 .方法(對(duì)象.方法)??

?? 1.Scroll.y??? 當(dāng)前位置

?? 2.startY? 開始滾動(dòng)的位置

?? 3.maxScrollY?? 最大滑動(dòng)距離

4 .refresh()?? 重新加載頁面

?? 5.scrollTo(0缰猴,.maxscrollY)跳轉(zhuǎn)到某一個(gè)位置

node

1 .node.js? ????是運(yùn)行在服務(wù)器的JavaScript.

2 .好處:?? nodejs基于googlede v8引擎.執(zhí)行效率高.速度快性能好

3 .特點(diǎn):

1 .Node.js 異步IO模型? 2 .回調(diào)函數(shù)? 3 .單線程??? 4.跨平臺(tái)

4 .運(yùn)行方式

1 .cmd命令:? node_?到node中??? ctrl+c返回?? node.js_進(jìn)入js文件

2 .在終端上直接寫代碼

3 .通過node打開外部文件

5 .commonJs規(guī)范:

1 .每個(gè)文件就是一個(gè)模塊,有自己的作用域疤剑。在一個(gè)文件里面定義的變量滑绒、函數(shù)、類隘膘,都是私有的疑故,對(duì)其他文件不可見。

2 .每個(gè)模塊內(nèi)部弯菊,module代表當(dāng)前模塊纵势,是一個(gè)對(duì)象,它exports屬性管钳,是對(duì)外的接口钦铁。

7.模塊:

1 .概念:每一個(gè)文件就是一個(gè)模塊

2 .原生模塊(fs,http,path,url,queryString...)

3 .文件模塊??? (自己寫的都叫做文件塊,.js??? .json??.node )

4 .主模塊:????? 會(huì)包含其他模塊才漆,最終運(yùn)行他牛曹。

8 .模塊加載:

1 .require(模塊路徑)??

要注意:模塊路徑直接寫模塊名,代表的是原生模塊醇滥,

如果想引入文件模塊黎比, 那么需要使用相對(duì)路徑或者絕對(duì)路徑的方式

2 .exports(導(dǎo)出對(duì)象)

3 .module(當(dāng)前模塊)

格式

var a=5;

1. exports.num=a;?? //(把a(bǔ)當(dāng)作num的屬性值? 暴露出去)

2. module.exports.num=a;? //(把a(bǔ)當(dāng)作num的屬性值? 暴露出去)

3. module.exports=a;?? //(輸出的是具體的值)

4. exports=a;???? //(輸出的是空對(duì)象)

exports????只能導(dǎo)出對(duì)象?? module.exports?? 可以導(dǎo)出對(duì)象超营,以及具體的值

9 .原理:

exports -> {} <- module.exports(輸出時(shí),優(yōu)先加載)

10 .模塊初始化:? 一個(gè)模塊被加載阅虫,并執(zhí)行后演闭,會(huì)初始化一次,隨后模塊里的內(nèi)容都會(huì)被緩存起來书妻,下次直接用就可以了???

11 .常用的原生模塊:

???? fs船响、http、url躲履、path见间、queryString

12 .模塊加載:

1 .加載原生模塊 :(直接寫模塊名)???? var fs=require("fs");

2 .加載文件模塊:?? 相對(duì)路徑(同級(jí)目錄要加./)、絕對(duì)路徑

13 .引入一個(gè)包名:

???? 包的概念:一個(gè)文件夾就是一個(gè)包

???? 1工猜、包必須要有:?index.js? .json? .node?(入口文件)

???? 2米诉、package.json(包管理文件){“main”:“./文件”}

???? 如果直接加載包名,會(huì)去尋找index這個(gè)文件篷帅,如果沒有index史侣,建立一個(gè)package.json文件,并且設(shè)置一個(gè)main屬性(入口文件)????

14 .node_modules目錄

???? 查找模塊的機(jī)制:從當(dāng)前目錄開始查找node_modules魏身,如果沒有惊橱,返回父級(jí)繼續(xù)查找,一直找到根目錄箭昵,如果還沒有税朴,報(bào)錯(cuò)

15 .NPM?? 包的管理工具

npm??包管理工具?? https://www.npmjs.com/

16 .安裝包:

1 .全局安裝? npm install包名 -g

?????????? (不管在哪運(yùn)行,默認(rèn)都會(huì)安裝到c盤的AppData文件夾下)

2 .本地安裝? npm install包名??? (安裝到當(dāng)前目錄下)

3 .卸載包:npm uninstall 包名

4 .查看包:?? npm list?

5 .查看某個(gè)包的版本號(hào):?? npm list包名

6 .更新: npm updata包名

7 .安裝中國(guó)的npm 方式

npm install -g cnpm

npm install -g cnpm

-registry=https://registry.npm.taobao.org

17 .node.js 文件系統(tǒng)

1 .讀取文件內(nèi)容

格式:varfs=require("fs");??fs.readFile("./a.txt",function(err,data){

?????????? if(err){console.log(err);}???? console.log(data.toString());?? });

2 .打開某個(gè)文件

var fs=require("fs");?fs.open("../3.fs","r+",function(err){//打開某個(gè)文件夾家制,

???? ? if(err){//判斷報(bào)錯(cuò)console.log(err);}??? //讀取文件

???? ?fs.readFile("./a.txt",function(err,data){???? if(err){console.log(err);}

console.log(data.toString()); //輸出文件內(nèi)容轉(zhuǎn)化成字符串??? })正林;});

3 .寫入文件? 注:寫入的內(nèi)容會(huì)替換掉以前的內(nèi)容

var fs=require("fs");var

str="吃了嗎";

fs.writeFile("./a.txt",str,function(err){

???? ?? if(err){console.log(err);?? }?????console.log("寫入成功");???? });

可以寫成String /Buffer(流)

4 .刪除文件

?varfs=require("fs");???fs.unlink("./a.txtj",function(err){

???? ?? if(err){console.log(err);}??? console.log('刪除完成');??? })

18 .http

1 .http模塊:搭建 HTTP 服務(wù)端???var http =require(“http”)

2 .參數(shù)

1 . request? :客戶端請(qǐng)求 2 .response :服務(wù)端返回3 .端口號(hào):1024-65535

3 .訪問服務(wù)器:

1颤殴、本地服務(wù)器ip:? http://127.0.0.1:8080

2觅廓、???????? http://localhost:8080

3、通過本機(jī)ip? 192.168.1.75:8080

4 . 創(chuàng)建服務(wù)器

http .createServer(function(req,res){ }).listen(端口號(hào)涵但,function(){ });

寫法:http.createServer(function(req,res){

???? ??????? res.writeHead()//響應(yīng)頭

???? ??????? res.write()?? //返回?cái)?shù)據(jù)杈绸,可以寫多個(gè)

???? ???????? res.end()? //服務(wù)器返回?cái)?shù)據(jù)并斷開連接,? 必須有且只有一次

}).listen(端口號(hào)贤笆,function(){???? });

??????????????? 端口號(hào):網(wǎng)絡(luò)(1-1024)??? 本地(1024-65535)

???????????? 5 .方法

?????1 .? res.writeHead(狀態(tài)字蝇棉,文件解釋格式)?????//響應(yīng)頭

????????????????????? res.writeHead(200,{“content-Type”:”text/html ;? charset=utf-8”}

(1).狀態(tài)碼:?jiǎn)卧O(shè)置? StartusCode=200;

200 服務(wù)器成功返回?cái)?shù)據(jù)??? 404:文件沒有找到

500:服務(wù)器錯(cuò)誤? 503:服務(wù)器超時(shí)

2 .文件解釋格式? setHeader?? 只設(shè)置響應(yīng)主體

單設(shè)置? SetHeader=content-Type:text/html? charset=utf-8

Text.html? 解釋標(biāo)簽?? Text/plain? 純文本

?????3 .? res.write ( “設(shè)置響應(yīng)的數(shù)據(jù)” )??//返回?cái)?shù)據(jù),可以寫多個(gè)

?????4 . res.end()? //服務(wù)器返回?cái)?shù)據(jù)并斷開連接芥永,?必須有且只有一次

5 .req.ur???? 拿到客戶端輸入的地址??? 要注意??????????/代表根目錄

6 .req.method? 拿到客戶端的請(qǐng)求方式? 默認(rèn)都是get

6 .問題

修改服務(wù)器代碼必須要重啟服務(wù)器,重啟的時(shí)候要終止服務(wù)篡殷。?

端口占用:? 1、改端口?? 2埋涧、終止服務(wù)(小紅點(diǎn))

7 .

http://www.baidu.com:80/main/index.html?user=zf&pass=123#info_cc

http: 協(xié)議名???????????????????????www.baidu.com:服務(wù)器地址

/main/index.html :文件路徑??????user=zf&pass=123:查詢字符串

#info_cc:片段標(biāo)識(shí)符

19 .url模塊

1 .方法

(1).url.parse(url字符串,true);

第二個(gè)參數(shù)為true,可以把query部分轉(zhuǎn)化成對(duì)象

url對(duì)象里面會(huì)有個(gè)pathname屬性板辽,這個(gè)屬性裝的就是文件路徑

[if !supportLists](2) [endif].url.format(對(duì)象)

可以把url對(duì)象轉(zhuǎn)成url字符串????

2 .路由:

[if !supportLists](1)[endif].通過用戶在地址欄輸入的url,?獲取其中的文件路徑奇瘦,在服務(wù)器中做? 匹配,? 如果? 用戶輸入的文件路徑與服務(wù)器中的文件路徑相同劲弦,就返回對(duì)應(yīng)頁面(通過fs模塊加載頁面并返回)耳标,如果不存在就返回404

????Var?? url?? =require(“url”)

(2).默認(rèn)? /首頁

search.html?? 搜索頁面??????news.html?? 新聞頁面

(3).查找路徑的方法

??????? __dirname? 絕對(duì)路徑??? __filename? 當(dāng)前文件的路徑

20 .querystring? 查詢字符串

1 .作用:對(duì)http請(qǐng)求所帶的數(shù)據(jù)進(jìn)行解析

Var querystring =require (“querystring”)

2 .方法

(1).parse(4個(gè)參數(shù))字符串轉(zhuǎn)化為對(duì)象

??????? Str:反序列化的字符串?????Separator:設(shè)置分隔符默認(rèn)&

??????? Eq :賦值符? 默認(rèn)=?????Options :maxKeys :number類型最大長(zhǎng)度字符串

(2). stringify ()?? 對(duì)象轉(zhuǎn)化字符串

??????? Obj:序列化的對(duì)象???separator:字符連接符? 默認(rèn)&

??????? Eq :連接值與字符??options:字符串換成百分比形式

(3). get 方式

?向服務(wù)器發(fā)送請(qǐng)求時(shí)? 拿數(shù)據(jù)是似地哪里拿不安全一般用 true

[if !supportLists](4)[endif]. post 在后臺(tái)傳數(shù)據(jù)接數(shù)據(jù)

1 .傳遞? :拼接字符串

2 . 方法

[if !supportLists](1)[endif].req.on(“data”,function(data){ })

? 不停觸發(fā)data 事件,拿到客戶端傳輸過來的數(shù)據(jù)通過拼接字符串把數(shù)據(jù)組合到一起?

格式:var str=“”邑跪;req.on(“data”,function(chunk){str+=chunk})

?????????? 3 .req .on(“end”次坡,function(){console.log(str)})傳遞結(jié)束

AJAX

1 .什么是ajax:

?? AJAX全稱為“Asynchronous JavaScript and XML”

?? AJAX =異步 JavaScript 和 XML。

?? 使用XMLHttpRequest對(duì)象與Web服務(wù)器進(jìn)行異步數(shù)據(jù)通信画畅;

?? 使用JavaScript綁定和處理所有數(shù)據(jù)砸琅。

?? AJAX是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)。通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換轴踱,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新症脂。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新.

2 .ajax的原理:

?? Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層(AJAX引擎),使用戶操作與服務(wù)器響應(yīng)異步化淫僻,

?? Ajax的原理簡(jiǎn)單來說通過XMLHttpRequest對(duì)象來向服務(wù)器發(fā)送異步請(qǐng)求诱篷,從服務(wù)器獲得數(shù)據(jù),然后用javascript來操作DOM而更新頁面雳灵。

3 .ajax的核心:

?? Ajax其核心有JavaScript棕所、XMLHTTPRequest、DOM對(duì)象組成

4 .ajax的優(yōu)缺點(diǎn):

?? 優(yōu)點(diǎn):? 1 .無刷新更新數(shù)據(jù)悯辙。???2 .異步與服務(wù)器通信橙凳。

??????? 3 .前端和后端負(fù)載平衡?4 .界面與應(yīng)用的分離

?? 缺點(diǎn):? 1 .無法后退??? 2.AJAX的安全問題??? 3 .AJAX不能很好支持移動(dòng)設(shè)備。

5 .對(duì)象:

new XMLHttpRequest//? 是對(duì)于現(xiàn)代瀏覽使用的

new ActiveXObject("Microsoft.XMLHTTP")? 是對(duì)IE5\6這兩個(gè)版本使用的

6 .處理兼容可以采用:? 創(chuàng)建對(duì)象

??????? var xhr;

??????? if(window.XMLHttpRequest){

????????????? xhr=newXMLHttpRequest();

??????? }elseif(window.ActiveXObject){

????????????? xhr=newActiveXObject("Microsoft.XMLHTTP");

??????? }else{? alert("你的瀏覽器太垃圾笑撞,趕緊換");???? }

7 .方法: 建立連接

?? xhr.open(method,url,async)? 與服務(wù)器進(jìn)行連接??

??????? method:請(qǐng)求方式???? get?? post

??????? url:請(qǐng)求服務(wù)器上文件的路徑,

??????? async: true(異步) false(同步)

8 .send()? 發(fā)送請(qǐng)求

如果是get方式钓觉,? 參數(shù)放一個(gè)null

如果是post方式茴肥,參數(shù)要放?? 請(qǐng)求的時(shí)候攜帶的數(shù)據(jù)

9 .屬性:

1 .responseText 服務(wù)器返回的數(shù)據(jù)(字符串形式)

??????? responseXML????????? 服務(wù)器返回的數(shù)據(jù)(XML格式)

2 .onreadystatechange?? 當(dāng)XMLHttpRequest的狀態(tài)被改變時(shí),會(huì)觸發(fā)這個(gè)事件

3 .readystate??? 這個(gè)參數(shù)表示的就是XMLHttpRequest的狀態(tài)0?? 1?? 2??3?? 4

4 .status???? 服務(wù)器的狀態(tài)????????例如200?? 404?? 荡灾。

10 .寫ajax的步驟:

1 .必須new 一個(gè)XMLHttpRequest?? 這么個(gè)對(duì)象

2 .與服務(wù)器進(jìn)行連接?? open()

3 .發(fā)送請(qǐng)求????? send()

4 .監(jiān)聽狀態(tài)有無改變??? ?onreadystatechange

5 .判斷狀態(tài)碼???

11 .post 與 get 的區(qū)別

?? POST是發(fā)送數(shù)據(jù)瓤狐,GET是接受數(shù)據(jù);

?? POST發(fā)送數(shù)據(jù)的安全性較好批幌,而GET較差础锐;

?? POST發(fā)送數(shù)據(jù)不限制大小,而GET大小受限2~100k

12 .請(qǐng)求方式

如果ajax是get方式:

?? 服務(wù)器直接通過地址欄就可以獲取到對(duì)應(yīng)的參數(shù)

如果是post方式請(qǐng)求

?? ajax這邊需要3個(gè)步驟荧缘,

?GET->POST?? setRequestHeader()??? send(攜帶請(qǐng)求的參數(shù))

服務(wù)器怎么接收參數(shù):通過req.on("data")??? 和??req.on("end")? 兩個(gè)事件來接受

13 .ajax的post請(qǐng)求:

xhr.open('POST', url, true);//第一步:GET換成POST

xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

//第二步:修改請(qǐng)求頭皆警,模仿form提交

xhr.send('user=guoyu&age=28');//第三步:要提交的數(shù)據(jù)放到send方法中

[if !supportLists]14. [endif]josn

1、什么是json?

?? JSON指的是 JavaScript 對(duì)象表示法(JavaScript Object Notation)

?? JSON是輕量級(jí)的文本數(shù)據(jù)交換格式

?? JSON獨(dú)立于語言

?? JSON具有自我描述性截粗,更易理解

2信姓、JSON 語法規(guī)則

?? 遵守鍵值對(duì)

?? 每條數(shù)據(jù)逗號(hào)分隔鸵隧,

?? json中只存在{} 和? []

3、文件后綴名??? .json

4意推、???????? JSON.parse()???? ??? 字符串轉(zhuǎn)對(duì)象

??????? JSON.stringify()??? 對(duì)象轉(zhuǎn)字符串

5豆瘫、JSON與XML的區(qū)別

?? JSON更小更快更易簡(jiǎn)析????????? XML大小不易簡(jiǎn)析

[if !supportLists]15、[endif]JQ? ajax

1.

[if !supportLists](1)[endif]? 菊值、*url?? 請(qǐng)求文件的地址

[if !supportLists](2)[endif]外驱、async? 是否同異步?true異步

[if !supportLists](3)[endif]、beforesend?請(qǐng)求發(fā)送前執(zhí)行的回調(diào)函數(shù)

[if !supportLists](4)[endif]腻窒、complete??請(qǐng)求之后執(zhí)行的回調(diào)函數(shù)

[if !supportLists](5)[endif]昵宇、data? 發(fā)送到服務(wù)器的數(shù)據(jù)

[if !supportLists](6)[endif]、dataType?服務(wù)器返回的數(shù)據(jù)類型? HTML

[if !supportLists](7)[endif]定页、error :function(){ }請(qǐng)求失敗

[if !supportLists](8)[endif]趟薄、success:function(){ } 請(qǐng)求成功

[if !supportLists](9)[endif]、type? 請(qǐng)求方式

2.$.get的參數(shù)

[if !supportLists](1)[endif]典徊、url?? 地址?

[if !supportLists](2)[endif]杭煎、data? 攜帶的數(shù)據(jù)?

[if !supportLists](3)[endif]、fn

[if !supportLists](4)[endif]卒落、type?? 數(shù)據(jù)返回的格式

[if !supportLists]3. [endif]$.post(? )??

4. $.getJSON(?? )

5. $ .each( 數(shù)組羡铲,function(){} )?

16、跨域??

? 1.是指瀏覽器不能執(zhí)行其他網(wǎng)站的腳本儡毕,它是由瀏覽器對(duì)javaScript施加的安全限制

? 2.同源策略 : 協(xié)議名? 域名? 端口相同

? 3.解決跨域

?????(1)也切、Access - Control - Allow - Origin : “*”=

?????(2)、JSONP

var?gulp=require("gulp");

gulp.task(任務(wù)名腰湾,[依賴任務(wù)]雷恃,function)

gulp.src(路徑)? //匹配/找到某個(gè)文件

gulp.dest(路徑)? //在何處生成文件

gulp.watch(要監(jiān)聽的文件路徑,[當(dāng)文件發(fā)生變化時(shí)要執(zhí)行的任務(wù)]);

.pipe(連接的文件)?連接作用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末费坊,一起剝皮案震驚了整個(gè)濱河市倒槐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌附井,老刑警劉巖讨越,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異永毅,居然都是意外死亡把跨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門沼死,熙熙樓的掌柜王于貴愁眉苦臉地迎上來着逐,“玉大人,你說我怎么就攤上這事”踔觯” “怎么了峰鄙?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)太雨。 經(jīng)常有香客問我吟榴,道長(zhǎng),這世上最難降的妖魔是什么囊扳? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任吩翻,我火速辦了婚禮,結(jié)果婚禮上锥咸,老公的妹妹穿的比我還像新娘狭瞎。我一直安慰自己,他們只是感情好搏予,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布熊锭。 她就那樣靜靜地躺著,像睡著了一般雪侥。 火紅的嫁衣襯著肌膚如雪碗殷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天速缨,我揣著相機(jī)與錄音锌妻,去河邊找鬼。 笑死旬牲,一個(gè)胖子當(dāng)著我的面吹牛仿粹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播原茅,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吭历,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了擂橘?” 一聲冷哼從身側(cè)響起毒涧,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贝室,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仿吞,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滑频,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唤冈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片峡迷。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绘搞,到底是詐尸還是另有隱情彤避,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布夯辖,位于F島的核電站琉预,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蒿褂。R本人自食惡果不足惜圆米,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啄栓。 院中可真熱鬧娄帖,春花似錦、人聲如沸昙楚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽堪旧。三九已至削葱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間崎场,已是汗流浹背佩耳。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谭跨,地道東北人干厚。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像螃宙,于是被迫代替她去往敵國(guó)和親蛮瞄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容