狠狠操夜夜甜|人妻在线中文字幕亚洲无码不卡av|一区二区欧美亚洲|日躁夜躁狠狠躁2001|亚洲,超碰,欧美|18AV成人电影|午夜成人免费在线|婷婷激情网深爱五月|色欲综合成人在线|在线美女搞黄大片

中企動(dòng)力 > 頭條 > 網(wǎng)站開(kāi)發(fā)中心

網(wǎng)站性能檢測(cè)評(píng)分

注:本網(wǎng)站頁(yè)面html檢測(cè)工具掃描網(wǎng)站中存在的基本問(wèn)題,僅供參考。

網(wǎng)站開(kāi)發(fā)中心

阿里P8十年架構(gòu)經(jīng)驗(yàn),兩千字一張圖,透析大型網(wǎng)站技術(shù)架構(gòu) 流量視頻課程

img

小蟲(chóng)蟲(chóng)

關(guān)注

1 架構(gòu)演化

大型網(wǎng)站的關(guān)注指標(biāo)

高可用

高性能

易擴(kuò)展

可伸縮

安全

大型網(wǎng)站的特點(diǎn)

高并發(fā),大流量

高可用

海量數(shù)據(jù)

用戶(hù)分布廣泛,網(wǎng)絡(luò)情況復(fù)雜

安全環(huán)境惡劣

需求快速變更,發(fā)布頻繁

漸進(jìn)式發(fā)展

大型網(wǎng)站架構(gòu)演化發(fā)展過(guò)程

初始階段,多使用LAMP來(lái)搭建,All In One即所有資源存放在一臺(tái)服務(wù)器上

應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離,有獨(dú)立的數(shù)據(jù)庫(kù)服務(wù)器

使用緩存改善網(wǎng)站性能(依據(jù)是二八定律:80%的業(yè)務(wù)訪(fǎng)問(wèn)集中在20%的數(shù)據(jù)上)

這里需要考慮哪些數(shù)據(jù)適合緩存

緩存可以是本地緩存,也可以是遠(yuǎn)程分布式緩存

需要考慮使用合理的緩存策略,防止透?jìng)?/p>

使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力

如果能通過(guò)增加一臺(tái)服務(wù)器的方式來(lái)改善負(fù)載壓力,就可以以同樣的方式持續(xù)增加服務(wù)器來(lái)不斷改善系統(tǒng)性能,從而實(shí)現(xiàn)系統(tǒng)的可伸縮性

這里需要考慮使用哪些負(fù)載均衡的策略

數(shù)據(jù)庫(kù)讀寫(xiě)分離

可以利用主流數(shù)據(jù)庫(kù)提供的主從熱備功能,通過(guò)配置兩臺(tái)數(shù)據(jù)庫(kù)的主從關(guān)系,同時(shí)業(yè)內(nèi)也有很多優(yōu)秀的開(kāi)源中間件如Atlas

緩存中的數(shù)據(jù),如果更新過(guò)快,那么會(huì)持續(xù)刷新緩存,從而降低性能

使用反向代理和CDN加速網(wǎng)絡(luò)響應(yīng)

CDN和反向代理的基本原理都是緩存

CDN部署在網(wǎng)絡(luò)提供商的機(jī)房,用戶(hù)在請(qǐng)求網(wǎng)絡(luò)服務(wù)時(shí),可以從距離自己最近的網(wǎng)絡(luò)提供商機(jī)房獲取數(shù)據(jù)

反向代理部署在網(wǎng)站的中心機(jī)房,當(dāng)用戶(hù)的請(qǐng)求到達(dá)中心機(jī)房后,首先訪(fǎng)問(wèn)的服務(wù)器是反向代理服務(wù)器,如果反向代理服務(wù)器中緩存著用戶(hù)請(qǐng)求的資源,那么就將其直接返回給用戶(hù)

CDN的重點(diǎn):——《大型網(wǎng)站系統(tǒng)與Java中間件實(shí)踐》

全局調(diào)度

緩存技術(shù)

內(nèi)容分發(fā)

帶寬優(yōu)化

使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng)

網(wǎng)站常用的數(shù)據(jù)庫(kù)拆分手段是業(yè)務(wù)分庫(kù),即將不同業(yè)務(wù)的數(shù)據(jù)庫(kù)部署到不同的物理服務(wù)器上

使用NoSQL和搜索引擎

ES

MongoDB

業(yè)務(wù)拆分,使用分而治之的手段將整個(gè)網(wǎng)站業(yè)務(wù)分成不同的產(chǎn)品線(xiàn)

SOA、服務(wù)化

中心化的 gataway方式

消息隊(duì)列

不同服務(wù)訪(fǎng)問(wèn)同一個(gè)DB等

這部分十分重要,道理很簡(jiǎn)單,但是執(zhí)行起來(lái)的效果千差萬(wàn)別。

當(dāng)下火熱的微服務(wù),也是基于這種思想。

技術(shù)實(shí)現(xiàn)方式也有很多

分布式服務(wù)

大型網(wǎng)站架構(gòu)演化的價(jià)值觀

網(wǎng)站的價(jià)值在于它能為用戶(hù)提供什么價(jià)值,在于網(wǎng)站能做什么,而不在于它是怎么做的。因此對(duì)于小型網(wǎng)站來(lái)說(shuō),最需要做的是位用戶(hù)提供好的服務(wù)來(lái)創(chuàng)造價(jià)值,得到用戶(hù)的認(rèn)可,從而活下去,野蠻生長(zhǎng)。

大型網(wǎng)站架構(gòu)技術(shù)的核心價(jià)值是隨網(wǎng)站所需靈活應(yīng)對(duì), 它是一個(gè)演化的過(guò)程

驅(qū)動(dòng)大型網(wǎng)站技術(shù)發(fā)展的主要力量是網(wǎng)站的業(yè)務(wù)發(fā)展,是業(yè)務(wù)成就了技術(shù),而不是相反。因此要摒棄為了技術(shù)而技術(shù)的套路

網(wǎng)站架構(gòu)設(shè)計(jì)誤區(qū)

一味追求大公司的解決方案

為了技術(shù)而技術(shù)

企圖用技術(shù)解決所有問(wèn)題

2 架構(gòu)模式

分層,這是在橫向方向?qū)ο到y(tǒng)進(jìn)行切分

分層的挑戰(zhàn)在于必須合理規(guī)劃層次邊界和接口

分層包括物理分層和邏輯分層兩種

分割,這是在縱向方向?qū)ο到y(tǒng)進(jìn)行切分

將不同的功能和服務(wù)分割開(kāi)來(lái),包裝秤高內(nèi)聚低耦合的模塊單元

分布式

1) 分布式應(yīng)用和服務(wù);

2) 分布式靜態(tài)資源;

3) 分布式數(shù)據(jù)和存儲(chǔ);

4) 分布式計(jì)算;

5) 分布式配置、分布式鎖、分布式文件系統(tǒng)。。。

1) 分布式意味著服務(wù)調(diào)用必須通過(guò)網(wǎng)絡(luò),需要考慮帶寬的影響;

2) 服務(wù)器越多,宕機(jī)的概率越大

分層和分割的目的在于小模塊便于分布式部署

帶來(lái)的問(wèn)題:

常用的分布式方案:

集群,即多臺(tái)服務(wù)器部署相同的應(yīng)用,從而構(gòu)成一個(gè)集群,通過(guò)負(fù)載均衡設(shè)備共同對(duì)外提供服務(wù)

即使訪(fǎng)問(wèn)量很小的分布式應(yīng)用和服務(wù),也至少要部署到兩臺(tái)服務(wù)器來(lái)構(gòu)成一個(gè)小集群,這樣可以提高系統(tǒng)的可用性

緩存,即將數(shù)據(jù)放在距離計(jì)算最近的位置以加快處理速度

CDN

反向代理

本地緩存

分布式緩存

異步,業(yè)務(wù)之間的消息傳遞不是同步調(diào)用,而是將一個(gè)業(yè)務(wù)操作分成多個(gè)階段,每個(gè)階段之間通過(guò)共享數(shù)據(jù)的方法異步進(jìn)行協(xié)作

1) 提高系統(tǒng)可用性;

2) 加快網(wǎng)站響應(yīng)速度;

3) 消除并發(fā)訪(fǎng)問(wèn)高峰

通常需要使用消息隊(duì)列

帶來(lái)的好處:

冗余

集群帶來(lái)的必然結(jié)果

安全需求的必然結(jié)果

自動(dòng)化,DevOps思維,盡量減少人工干預(yù)

自動(dòng)化發(fā)布

自動(dòng)化代碼管理

自動(dòng)化測(cè)試

自動(dòng)化安全監(jiān)測(cè)

自動(dòng)化部署

自動(dòng)化監(jiān)控

自動(dòng)化報(bào)警

自動(dòng)化失效轉(zhuǎn)移、恢復(fù)

自動(dòng)化分配資源

......

安全

3 大型網(wǎng)站核心架構(gòu)要素

性能

一個(gè)性能問(wèn)題可能會(huì)導(dǎo)致網(wǎng)站用戶(hù)嚴(yán)重流失

衡量性能的指標(biāo):響應(yīng)時(shí)間、TPS、系統(tǒng)性能計(jì)數(shù)器等

可用性

沒(méi)有網(wǎng)站可以完美的7*24運(yùn)行

網(wǎng)站高可用結(jié)構(gòu)的前提是必然會(huì)出現(xiàn)服務(wù)器宕機(jī),兒高可用設(shè)計(jì)的目標(biāo)是當(dāng)服務(wù)器宕機(jī)時(shí),服務(wù)或者應(yīng)用依然可用

必要的手段是集群,即冗余

伸縮性,即通過(guò)不斷向集群中加入服務(wù)器的手段來(lái)環(huán)節(jié)不斷上升的用戶(hù)并發(fā)訪(fǎng)問(wèn)壓力和不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求

衡量標(biāo)準(zhǔn):是否可以構(gòu)建集群;是否可以方便的向集群中添加新的服務(wù)器

擴(kuò)展性,直接關(guān)注網(wǎng)站的功能,保證可以快速響應(yīng)需求變更

衡量標(biāo)準(zhǔn): 網(wǎng)站增加新的業(yè)務(wù)產(chǎn)品時(shí),是否對(duì)現(xiàn)有業(yè)務(wù)透明無(wú)影響

安全性

衡量標(biāo)準(zhǔn): 針對(duì)現(xiàn)存和潛在的各種攻擊和竊密手段,是否可以有效的應(yīng)對(duì)

4 瞬時(shí)響應(yīng) - 網(wǎng)站的高性能架構(gòu)

不同視角下的網(wǎng)站性能

用戶(hù)視角

主要是端到端的感覺(jué)

主要通過(guò)前段優(yōu)化的手段來(lái)提升用戶(hù)體驗(yàn)

開(kāi)發(fā)人員視角

主要關(guān)注應(yīng)用程序本身以及相關(guān)子系統(tǒng)的性能,包括響應(yīng)延遲、系統(tǒng)吞吐量、并發(fā)處理能力、系統(tǒng)穩(wěn)定性等

主要優(yōu)化手段: 使用緩存加速數(shù)據(jù)讀取、使用集群提高吞吐能力、使用異步消息加快請(qǐng)求響應(yīng)、使用代碼優(yōu)化提升程序性能

運(yùn)維人員視角

主要關(guān)注基礎(chǔ)設(shè)施性能和資源利用率

主要優(yōu)化手段: 建設(shè)優(yōu)化骨干網(wǎng)、使用高性?xún)r(jià)比定制服務(wù)器、利用虛擬化技術(shù)優(yōu)化資源利用率

性能測(cè)試指標(biāo)

響應(yīng)時(shí)間,即應(yīng)用執(zhí)行一個(gè)操作需要的時(shí)間,包括從發(fā)出請(qǐng)求開(kāi)始到收到最后響應(yīng)數(shù)據(jù)所需要的時(shí)間

并發(fā)數(shù),即系統(tǒng)能夠同時(shí)處理的請(qǐng)求的數(shù)目,也反映了系統(tǒng)的負(fù)載特性

吞吐量,即單位時(shí)間內(nèi)系統(tǒng)處理的請(qǐng)求數(shù)量,體現(xiàn)系統(tǒng)的整理處理能力

性能計(jì)數(shù)器, 描述服務(wù)器或者操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo)

性能測(cè)試方法

性能測(cè)試,以系統(tǒng)設(shè)計(jì)初期規(guī)劃的性能指標(biāo)為預(yù)期目標(biāo),對(duì)系統(tǒng)不斷增壓,驗(yàn)證系統(tǒng)在資源可接受范圍內(nèi),是否能達(dá)到性能預(yù)期

負(fù)載測(cè)試,對(duì)系統(tǒng)不斷的增加并發(fā)請(qǐng)求,知道系統(tǒng)的某項(xiàng)或者多項(xiàng)性能指標(biāo)達(dá)到安全臨界值

壓力測(cè)試,超過(guò)安全負(fù)載的情況下,繼續(xù)對(duì)系統(tǒng)增壓,直到系統(tǒng)崩潰或者不能再處理任何請(qǐng)求

穩(wěn)定性測(cè)試,在特定硬件、軟件、網(wǎng)絡(luò)情況下,給系統(tǒng)加載一定壓力,是系統(tǒng)運(yùn)行較長(zhǎng)一段時(shí)間,來(lái)觀察系統(tǒng)是否穩(wěn)定

Web前端優(yōu)化

瀏覽器訪(fǎng)問(wèn)優(yōu)化

減少http請(qǐng)求

使用瀏覽器緩存

啟用壓縮

CSS放在頁(yè)面最上面,JavaScript放在頁(yè)面最下面

減少Cookie傳輸

CDN加速

反向代理

應(yīng)用服務(wù)器性能優(yōu)化

分布式緩存

一般會(huì)使用消息隊(duì)列,帶來(lái)的額外好處是會(huì)削平峰值

1)不同的緩存服務(wù)器之間進(jìn)行通信,例如JBoss Cache;

2)不同緩存服務(wù)器之間不進(jìn)行通信,例如Memcached

緩存從本質(zhì)上來(lái)說(shuō),就是一個(gè)內(nèi)存hash表

緩存需要緩存那些讀寫(xiě)比很高、很少變化的數(shù)據(jù),一般來(lái)說(shuō)讀寫(xiě)比在2:1以上時(shí),緩存才有意義

應(yīng)用程序讀取數(shù)據(jù)時(shí),首先到緩存中讀取,如果緩存不存在或者已失效,再訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),同時(shí)將新的數(shù)據(jù)放入緩存

緩存也需要注意緩存熱點(diǎn)數(shù)據(jù)

緩存預(yù)熱,在新啟動(dòng)的緩存系統(tǒng)中,在啟動(dòng)時(shí)就加載熱點(diǎn)數(shù)據(jù),這樣啟動(dòng)后就可以直接使用

緩存穿透, 應(yīng)用持續(xù)大量訪(fǎng)問(wèn)不存在的數(shù)據(jù),因?yàn)檫@類(lèi)數(shù)據(jù)不存在于緩存中,因此會(huì)大量訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),從而降低性能

對(duì)于分布式緩存來(lái)說(shuō),目前有兩類(lèi):

異步操作

使用集群

代碼優(yōu)化

多線(xiàn)程

1) 將對(duì)象設(shè)計(jì)成無(wú)狀態(tài)對(duì)象;

2) 使用局部對(duì)象;

3) 并發(fā)訪(fǎng)問(wèn)資源時(shí)使用鎖

需要注意線(xiàn)程安全問(wèn)題,方法:

資源復(fù)用

主要是單例和資源池(對(duì)象池)

數(shù)據(jù)結(jié)構(gòu),選擇合適的算法

垃圾回收

合理設(shè)置垃圾回收策略

存儲(chǔ)性能優(yōu)化

機(jī)械硬盤(pán) vs 固態(tài)硬盤(pán)

B+樹(shù) vs LSM樹(shù)

RAID vs HDFS

5 萬(wàn)無(wú)一失 - 網(wǎng)站的高可用架構(gòu)

網(wǎng)站可用性度量

網(wǎng)站不可用時(shí)間 = 故障修復(fù)時(shí)間點(diǎn) - 故障發(fā)現(xiàn)時(shí)間點(diǎn)

網(wǎng)站年度可用性指標(biāo) = (1 - 網(wǎng)站不可用時(shí)間/年度總時(shí)間)* 100%

一般以幾個(gè)9來(lái)表示,2個(gè)9是基本可用,網(wǎng)站年度不可用時(shí)間小于88小時(shí);3個(gè)9是較高可用,網(wǎng)站年度不可用時(shí)間小于9小時(shí);4個(gè)9是具有自動(dòng)恢復(fù)能力的高可用,網(wǎng)站年度不可用時(shí)間小于53分鐘;5個(gè)9是極高可用性,網(wǎng)站年度不可用時(shí)間小于5分鐘

網(wǎng)站高可用架構(gòu)的設(shè)計(jì)目標(biāo)是保證服務(wù)器硬件故障時(shí)服務(wù)依然可用、數(shù)據(jù)依然保存并能夠被訪(fǎng)問(wèn)

網(wǎng)站高可用架構(gòu)的主要手段:數(shù)據(jù)和服務(wù)的冗余備份以及失效轉(zhuǎn)移,一旦服務(wù)器宕機(jī),就將服務(wù)切換至其他可用的服務(wù)器上。

高可用的應(yīng)用

無(wú)狀態(tài)應(yīng)用: 應(yīng)用服務(wù)器不保存業(yè)務(wù)的上下文信息,而僅根據(jù)每次請(qǐng)求提交的數(shù)據(jù)進(jìn)行相應(yīng)的業(yè)務(wù)邏輯處理,多個(gè)服務(wù)實(shí)例之間完全對(duì)等,請(qǐng)求提交到任何一個(gè)服務(wù)器上,處理的結(jié)構(gòu)都是相同的。

通過(guò)負(fù)載均衡進(jìn)行無(wú)狀態(tài)服務(wù)的失效轉(zhuǎn)移

負(fù)載均衡: 主要使用在業(yè)務(wù)量和數(shù)據(jù)量較高的情況下,當(dāng)單臺(tái)服務(wù)器不足以承擔(dān)所有的負(fù)載壓力時(shí),通過(guò)負(fù)載均衡手段,將流量和數(shù)據(jù)分?jǐn)偟揭粋€(gè)集群組成的多臺(tái)服務(wù)器上, 以提升整體的負(fù)載處理能力

應(yīng)用服務(wù)器集群的Session管理

Session復(fù)制

Session綁定

利用Cookie記錄Session

Session服務(wù)器

高可用的服務(wù)

分級(jí)管理

核心服務(wù)與非核心服務(wù)隔離

核心服務(wù)優(yōu)先使用高性能服務(wù)器

超時(shí)設(shè)置

異步調(diào)用

必須滿(mǎn)足可以使用異步調(diào)用方式

服務(wù)降級(jí)

冪等性設(shè)計(jì)

服務(wù)高可用(高可靠)一直是美團(tuán)外賣(mài)的第一要求,為了提高可用性,做了很多策略,包括并不限于上文提出的各種架構(gòu)設(shè)計(jì)方案。

其實(shí)造成線(xiàn)上問(wèn)題的很大一部分原因是由于發(fā)版造成的,也體現(xiàn)出了SOP的重要性。

關(guān)于降級(jí)與依賴(lài)隔離,可以考慮采用Hystrix實(shí)現(xiàn)自動(dòng)降級(jí)與依賴(lài)隔離 。

高可用的數(shù)據(jù)

數(shù)據(jù)一旦出現(xiàn)問(wèn)題,對(duì)于網(wǎng)站往往是毀滅性的打擊,因此保護(hù)網(wǎng)站的數(shù)據(jù)就是保護(hù)企業(yè)的命脈。

主要手段:數(shù)據(jù)備份和失效轉(zhuǎn)移

緩存服務(wù)高可用

觀點(diǎn)一:緩存服務(wù)已經(jīng)承擔(dān)了業(yè)務(wù)中絕大多數(shù)的數(shù)據(jù)讀取訪(fǎng)問(wèn),因此需要同樣保證高可用

觀點(diǎn)二:緩存服務(wù)并不是數(shù)據(jù)存儲(chǔ)服務(wù),出現(xiàn)服務(wù)不可用導(dǎo)致數(shù)據(jù)丟失應(yīng)從別的手段解決,而不是提高緩存服務(wù)本身高可用

緩存服務(wù)器集群中單機(jī)故障,集群規(guī)模較大時(shí),數(shù)據(jù)丟失比例和數(shù)據(jù)負(fù)載壓力影響很小。

CAP原理: 一個(gè)提供數(shù)據(jù)服務(wù)的存儲(chǔ)系統(tǒng)無(wú)法同時(shí)滿(mǎn)足數(shù)據(jù)一致性(Consistency)、數(shù)據(jù)可用性(Availibility)、分區(qū)耐受性(Parition Tolerance)這三個(gè)條件

數(shù)據(jù)高可用含義:

副本間數(shù)據(jù)一致

多個(gè)副本可讀

同時(shí)寫(xiě)入數(shù)據(jù)副本

1)數(shù)據(jù)持久性

2)數(shù)據(jù)可訪(fǎng)問(wèn)性

3)數(shù)據(jù)一致性

數(shù)據(jù)一致性分類(lèi):

1) 數(shù)據(jù)強(qiáng)一致;

2) 數(shù)據(jù)用戶(hù)一致;

3) 數(shù)據(jù)最終一致

數(shù)據(jù)備份

1) 異步熱備;

2) 同步熱備

冷備的優(yōu)點(diǎn)是簡(jiǎn)單和廉價(jià),成本和技術(shù)難度較低,缺點(diǎn)是不能保證數(shù)據(jù)最終一致

熱備分為兩種:

失效轉(zhuǎn)移

1) 心跳檢測(cè)(Keepalived、Heartbeat);

2) 應(yīng)用程序訪(fǎng)問(wèn)失敗報(bào)告

失效確認(rèn):

訪(fǎng)問(wèn)轉(zhuǎn)移

數(shù)據(jù)恢復(fù)

高可用網(wǎng)站的軟件質(zhì)量保證

網(wǎng)站發(fā)布,它的過(guò)程和服務(wù)器宕機(jī)效果箱單,其對(duì)系統(tǒng)可用性的影響也 類(lèi)似

一般采取批量更新的方式進(jìn)行,不會(huì)一次關(guān)掉集群中的全部服務(wù)器

自動(dòng)化測(cè)試

一般使用Selenium來(lái)進(jìn)行測(cè)試

預(yù)發(fā)布驗(yàn)證

預(yù)發(fā)布服務(wù)器是一種特殊用途的服務(wù)器,它和線(xiàn)上的正式服務(wù)器唯一的區(qū)別是沒(méi)有配置在負(fù)載均衡服務(wù)器上,外部用戶(hù)無(wú)法訪(fǎng)問(wèn)

代碼控制

主干開(kāi)發(fā),分支發(fā)布

分支開(kāi)發(fā),主干發(fā)布,這是目前使用的主流方式

自動(dòng)化發(fā)布

火車(chē)模型:將每個(gè)應(yīng)用的發(fā)布過(guò)程看做一次火車(chē)旅程,火車(chē)定點(diǎn)運(yùn)行,期間有若干站點(diǎn),每一站都進(jìn)行例行檢查,不通過(guò)的項(xiàng)目下車(chē),通過(guò)的項(xiàng)目繼續(xù)坐著火車(chē)旅行,直到火車(chē)到達(dá)終點(diǎn)。

實(shí)際中,可能所有項(xiàng)目在途中都下車(chē)了,這樣火車(chē)不得不回到原點(diǎn),等待?...

細(xì)說(shuō)網(wǎng)頁(yè)開(kāi)發(fā)者工具F12-前端開(kāi)發(fā)利器二 企業(yè)視頻課程

img

家菀

關(guān)注

前言

寫(xiě)這篇文章是細(xì)說(shuō)網(wǎng)頁(yè)開(kāi)發(fā)者工具F12 - 前端開(kāi)發(fā)利器的第二篇文章,若覺(jué)得不錯(cuò)請(qǐng)關(guān)注作者。

F12之Console

就是位于Elemnets右邊的,打開(kāi)后你會(huì)發(fā)現(xiàn)什么都沒(méi)有

我們?cè)囍M(jìn)入到友鏈頁(yè)面,發(fā)現(xiàn)console面板出現(xiàn)了一些警告。這是因?yàn)樵趆ttps域名下使用http的資源引起的警告。

為了更好的示范,我們這里新建一個(gè)html文件,代碼如下

我們可以看出js的console.log方法可以在console面板輸出內(nèi)容

這里我們嘗試書(shū)寫(xiě)錯(cuò)誤的語(yǔ)法,console面板會(huì)報(bào)錯(cuò),顯示錯(cuò)誤信息以及錯(cuò)誤所在的行號(hào)

我們還可以直接在console面板直接編寫(xiě)我們的js代碼。

在百度首頁(yè)打開(kāi)console面板還可以看見(jiàn)百度的招聘信息。

F12之Sources

Sources面板下可以看到網(wǎng)頁(yè)加載的各種資源,這里我們看到除了本域名下的資源,還加載了百度的統(tǒng)計(jì),還有新浪微博的相冊(cè)。

通過(guò)這個(gè)面板我們可以管理網(wǎng)站是否有用到其他網(wǎng)站的資源

未完待續(xù)……Continued……

希望這篇文章能給你帶來(lái)知識(shí)和樂(lè)趣

程序員必學(xué):瀏覽器開(kāi)發(fā)者工具 互聯(lián)網(wǎng)視頻課程

img

希茨海爾斯

關(guān)注

瀏覽器開(kāi)發(fā)者工具到底是什么?

其實(shí)簡(jiǎn)單的說(shuō),瀏覽器開(kāi)發(fā)者工具就是給專(zhuān)業(yè)的web應(yīng)用和網(wǎng)站開(kāi)發(fā)人員使用的工具,當(dāng)然只要你有興趣想要了解,只要你對(duì)這個(gè)世界充滿(mǎn)這好奇,什么東西你都可以了解。

開(kāi)發(fā)者工具到底有什么用?

它的作用在于,幫助開(kāi)發(fā)人員對(duì)網(wǎng)頁(yè)進(jìn)行布局,比如HTML+CSS,幫助前端工程師更好的調(diào)試腳本(JavaScript、jQuery)之類(lèi)的,還可以使用工具查看網(wǎng)頁(yè)加載過(guò)程,獲取網(wǎng)頁(yè)請(qǐng)求(這個(gè)過(guò)程也叫做抓包),抓包是非常有意思的過(guò)程,而每一個(gè)瀏覽器廠(chǎng)商生產(chǎn)出來(lái)的瀏覽器都會(huì)有自己的殺手锏,也就是功能上的差別,那么這個(gè)時(shí)候你就找一個(gè)最適合自己的瀏覽器使用就可以,接下來(lái)就是介紹我常用的三個(gè)瀏覽器。

chrom瀏覽器打開(kāi)-開(kāi)發(fā)人員工具-方式如下:

手動(dòng)打開(kāi)開(kāi)發(fā)者工具的方法

當(dāng)然,也可使用快捷方式,最為簡(jiǎn)便:打開(kāi)方式有兩種:第一“按F12”,第二:shift+ctrl+i

開(kāi)發(fā)人員工具的界面

下面,為大家介紹下幾個(gè)功能的使用方法:

Elements

Elements工具像一把手術(shù)刀一樣“解剖”了當(dāng)前頁(yè)面,我們看到的Elements頁(yè)面一般像這樣子:

圖中標(biāo)記為1的紅色區(qū)塊為頁(yè)面HTML文件,HTML中的每個(gè)元素比如<body>、<p>都是一個(gè)DOM節(jié)點(diǎn),所有的DOM節(jié)點(diǎn)組成了DOM樹(shù)。我們完全可以把紅色區(qū)塊1當(dāng)做是DOM樹(shù),把HTML元素標(biāo)簽看做DOM節(jié)點(diǎn)。

當(dāng)我們?cè)谶@里選中某一DOM對(duì)象時(shí),網(wǎng)頁(yè)中相應(yīng)元素也會(huì)被陰影覆蓋。我們可以對(duì)DOM對(duì)象進(jìn)行修改,修改后結(jié)果會(huì)在頁(yè)面實(shí)時(shí)顯示出來(lái)。此外,還可以用 Command + f 搜索DOM樹(shù)中指定的內(nèi)容,或者是以HTML形式更改頁(yè)面元素,如下圖:

選中DOM對(duì)象之后右鍵即可以看到一些輔助的功能,如圖中標(biāo)記為2的區(qū)塊所示:

Add Attribute: 在標(biāo)簽中增加新的屬性;

Force Element State: 有時(shí)候我們?yōu)轫?yè)面元素添加一些動(dòng)態(tài)的樣式,比如當(dāng)鼠標(biāo)懸停在元素上時(shí)的樣式,這種動(dòng)態(tài)樣式很難調(diào)試。我們可以使用Force Element State強(qiáng)制元素狀態(tài),便于調(diào)試,如下圖:

![圖4. 強(qiáng)制元素狀態(tài)][4]Edit as HTML: 以HTML形式更改頁(yè)面元素;

Copy XPath: 復(fù)制XPath;

Delete Node: 刪除DOM節(jié)點(diǎn);

Break On: 設(shè)置DOM 斷點(diǎn)。

圖中被標(biāo)記為3的藍(lán)色區(qū)塊顯示當(dāng)前標(biāo)簽的路徑:從html開(kāi)始一直到當(dāng)前位置,我們單擊路徑中任何一個(gè)標(biāo)簽,即可以跳轉(zhuǎn)到相應(yīng)標(biāo)簽內(nèi)容中去。

圖中標(biāo)記為4的藍(lán)色區(qū)塊實(shí)時(shí)顯示當(dāng)前選中標(biāo)簽的CSS樣式、屬性等,一共有以下5小部分:

Styles: 顯示用戶(hù)定義的樣式,比如請(qǐng)求的default.css中的樣式,和通過(guò)Javasript生成的樣式,還有開(kāi)發(fā)者工具添加的樣式;

Computed: 顯示開(kāi)發(fā)者工具計(jì)算好的元素樣式;

Event Listeners: 顯示當(dāng)前HTML DOM節(jié)點(diǎn)和其祖先節(jié)點(diǎn)的所有JavaScript事件監(jiān)聽(tīng)器,這里的監(jiān)聽(tīng)腳本可以來(lái)自Chrome的插件??梢渣c(diǎn)擊右邊小漏斗形狀(filter)選擇只顯示當(dāng)前節(jié)點(diǎn)的事件監(jiān)聽(tīng)器。

DOM Breakpoints: 列出所有的DOM 斷點(diǎn);

Properties: 超級(jí)全面地列出當(dāng)前選中內(nèi)容的屬性,不過(guò)基本很少用到。

實(shí)際應(yīng)用中我們經(jīng)常會(huì)用到Styles,如下圖:

圖中標(biāo)記為1的+號(hào)為New style rule,可以為當(dāng)前標(biāo)簽添加新的選擇器,新建立的樣式為inspector-stylesheet。此外,也可以直接在原有的樣式上增加、修改、禁用樣式屬性,如圖中標(biāo)記2顯示。

在New style rule右邊為T(mén)oggle Element State,選擇后會(huì)出現(xiàn)標(biāo)記3顯示的選擇框,如果選中:hover后,即可以看到鼠標(biāo)懸停在頁(yè)面元素上時(shí)的CSS樣式了,作用類(lèi)似于前面的Force Element Satte,更多內(nèi)容可以看:hover state in Chrome Developer Tools 。

更強(qiáng)大的是,開(kāi)發(fā)者工具以直觀的圖形展示了盒子模型的margin、border、padding部分,如標(biāo)記5所示。下面動(dòng)態(tài)圖給出了盒子模型的一個(gè)示例:

Console

Console可以查看網(wǎng)頁(yè)運(yùn)行后提示的消息,錯(cuò)誤或者警告以及輸出內(nèi)容等,網(wǎng)頁(yè)后臺(tái)可以使用Console.debug("輸出內(nèi)容");來(lái)在Console輸出顯示,可以做到調(diào)試的作用吧,不過(guò)一般真正調(diào)試不是拿Console。console.debug("Console使用介紹");console是小寫(xiě)形式,不然提示沒(méi)有Console

Resources

Resources里可以查看web程序跑起來(lái)后所加載的一些資源(Resources),包括圖片或者其他“值”,以及Cookies

Network

有時(shí)候我們的網(wǎng)頁(yè)加載的很慢,而相同網(wǎng)速下,其他網(wǎng)頁(yè)加載速度并不慢。這時(shí)候就得考慮優(yōu)化網(wǎng)頁(yè),優(yōu)化前我們必須知道加載速度的瓶頸在哪里,這個(gè)時(shí)候可以考慮使用Network工具。下圖為我的博客首頁(yè)加載時(shí)的Network情況:

請(qǐng)求的每個(gè)資源在Network表格中顯示為一行,每個(gè)資源都有許多列的內(nèi)容(如紅色區(qū)塊1),不過(guò)默認(rèn)情況下不是所有列都顯示出來(lái)。

Name/Path: 資源名稱(chēng)以及URL路徑;

Method: HTTP請(qǐng)求方法;

Status/Text: HTTP狀態(tài)碼/文字解釋?zhuān)?/p>

Type: 請(qǐng)求資源的MIME類(lèi)型;

Initiator解釋請(qǐng)求是怎么發(fā)起的,有四種可能的值:

Parser:請(qǐng)求是由頁(yè)面的HTML解析時(shí)發(fā)送的;

Redirect:請(qǐng)求是由頁(yè)面重定向發(fā)送的;

Script:請(qǐng)求是由script腳本處理發(fā)送的;

Other:請(qǐng)求是由其他過(guò)程發(fā)送的,比如頁(yè)面里的link鏈接點(diǎn)擊,在地址欄輸入U(xiǎn)RL地址。

Size/Content: Size是響應(yīng)頭部和響應(yīng)體結(jié)合起來(lái)的大小,Content是請(qǐng)求內(nèi)容解碼后的大小。進(jìn)一步了解可以看這里Chrome Dev Tools - “Size” vs “Content”;

Time/Latency: Time是從請(qǐng)求開(kāi)始到接收到最后一個(gè)字節(jié)的總時(shí)長(zhǎng),Latency是從請(qǐng)求開(kāi)始到接收到第一個(gè)字節(jié)的時(shí)間;

Timeline: 顯示網(wǎng)絡(luò)請(qǐng)求的可視化瀑布流,鼠標(biāo)懸停在某一個(gè)時(shí)間線(xiàn)上,可以顯示整個(gè)請(qǐng)求各部分花費(fèi)的時(shí)間。

以上是默認(rèn)顯示的列,不過(guò)我們可以在瀑布流的頂部右鍵,這樣就可以選擇顯示或者隱藏更多的列,比如Cache-Control, Connection, Cookies, Domain等。

我們可以按照上面任意一項(xiàng)來(lái)給資源請(qǐng)求排序,只需要單擊相應(yīng)的名字即可。Timeline排序比較復(fù)雜,單擊Timeline后,需要選擇根據(jù)Start Time、Response Time、End Time、Duration、Latency中的一項(xiàng)來(lái)排序。

紅色區(qū)塊2中,一共有6個(gè)小功能:

Record Network Log: 紅色表示此時(shí)正在記錄資源請(qǐng)求信息;

Clear: 清空所有的資源請(qǐng)求信息;

Filter: 過(guò)濾資源請(qǐng)求信息;

Use small resource raws: 每一行顯示更少的內(nèi)容;

Perserve Log: 再次記錄請(qǐng)求的信息時(shí)不擦出之前的資源信息;

Disable cache: 不允許緩存的話(huà),所有資源均重新加載。

選擇Filter后,就會(huì)出現(xiàn)如紅色區(qū)塊3所顯示的過(guò)濾條件,當(dāng)我們點(diǎn)擊某一內(nèi)容類(lèi)型(可以是Documents, Stylesheets, Images, Scripts, XHR, Fonts, WebSockets, Other)后,只顯示該特定類(lèi)型的資源。在XHR請(qǐng)求中,可以在一個(gè)請(qǐng)求上右鍵選擇“Replay XHR”來(lái)重新運(yùn)行一個(gè)XHR請(qǐng)求。

有時(shí)候我們需要把Network里面內(nèi)容傳給別人,這時(shí)候可以在資源請(qǐng)求行的空白處右鍵然后選擇Save as HAR with Content保存為一個(gè)HAR文件。然后可以在一些第三方工具網(wǎng)站,比如這里重現(xiàn)網(wǎng)絡(luò)請(qǐng)求信息。

選定某一資源后,我們還可以Copy as cURL,也就是復(fù)制網(wǎng)絡(luò)請(qǐng)求作為curl命令的參數(shù),詳細(xì)內(nèi)容看 Copying requests as cURL commands

此外,我們還可以查看網(wǎng)絡(luò)請(qǐng)求的請(qǐng)求頭,響應(yīng)頭,已經(jīng)返回的內(nèi)容等信息,如下圖:

資源的詳細(xì)內(nèi)容有以下幾個(gè):

HTTP request and response headers

Resource preview: 可行時(shí)進(jìn)行資源預(yù)覽;

HTTP response: 未處理過(guò)的資源內(nèi)容;

Cookie names and values: HTTP請(qǐng)求以及返回中傳輸?shù)乃蠧ookies;

WebSocket messages: 通過(guò)WebSocket發(fā)送和接收到的信息;

Resource network timing: 圖形化顯示資源加載過(guò)程中各階段花費(fèi)的時(shí)間

Source

Sources面板幾乎是我最常用到的Chrome功能面板,也是在我看來(lái)決解一般問(wèn)題的主要功能面板。通常只要是開(kāi)發(fā)遇到了js報(bào)錯(cuò)或者其他代碼問(wèn)題,在審視一遍自己的代碼而一無(wú)所獲之后,我首先就會(huì)打開(kāi)Sources進(jìn)行js斷點(diǎn)調(diào)試,而它也幾乎能解決我80%的代碼問(wèn)題。Js斷點(diǎn)這個(gè)功能讓人興奮不已,在沒(méi)有js斷點(diǎn)功能,只能在IE(萬(wàn)惡的IE)中靠alert彈出窗口調(diào)試js代碼的時(shí)代(特別alert一個(gè)object根本不會(huì)理你),那樣的開(kāi)發(fā)環(huán)境對(duì)于前端程序員來(lái)說(shuō)簡(jiǎn)直是一場(chǎng)噩夢(mèng)。本篇文章講會(huì)介紹Sources的具體用法,幫助各位在開(kāi)發(fā)過(guò)程中夠愉快地調(diào)試js代碼,而不是因它而發(fā)瘋。首先打開(kāi)F12開(kāi)發(fā)工具切換到Sources面板中:

Sources功能面板是資源面板,他主要分為四個(gè)部分,四個(gè)部分并不是獨(dú)立的,他們互相關(guān)聯(lián),互動(dòng)共同實(shí)現(xiàn)一個(gè)重要的功能:監(jiān)控js在執(zhí)行期的活動(dòng)。簡(jiǎn)單來(lái)說(shuō)就是斷點(diǎn)啦。

首先我們來(lái)看區(qū)域1,它的功能有些類(lèi)似于Resources面板,主要是顯示網(wǎng)頁(yè)加載的腳本文件:例如css, js等資源文件(它不包含cookie,img等靜態(tài)資源文件)。

區(qū)域1的導(dǎo)航條上有三個(gè)tab切換選項(xiàng),他們都存有不同域名和環(huán)境下的js和css文件,我們首先來(lái)說(shuō)明Sources(資源)選項(xiàng)的作用:

Sources: 包含該項(xiàng)目的靜態(tài)資源文件。雙擊選中文件,該文件內(nèi)容會(huì)在區(qū)域2中顯示,如果你選中的是js文件,那么你可以在區(qū)域2種單擊行號(hào)進(jìn)行斷點(diǎn)調(diào)試,只要js執(zhí)行到了你所標(biāo)記的這一行,它會(huì)停止向下執(zhí)行并且等待你的命令:

從上圖可以看到j(luò)s執(zhí)行到斷點(diǎn)處時(shí)各個(gè)區(qū)域的變化,首先是區(qū)域3中的Breakpoints記錄信息會(huì)變高亮,然后是區(qū)域4中Scope 選項(xiàng)中列出了斷點(diǎn)處私有和公有的變量信息,這樣,我可以很直觀地知道,此時(shí)此刻js的執(zhí)行狀態(tài)。同樣的,你可以把鼠標(biāo)放到區(qū)域2種的某個(gè)變量上,瀏覽器會(huì)彈出一個(gè)小框框,框框里面則是你懸浮其上的變量所有信息:

然后,你可以按F10跟著js執(zhí)行的路徑一步一步地走下去,如果你遇到了一個(gè)函數(shù)包含著另外一個(gè)函數(shù),那么你可以按F11進(jìn)入到個(gè)函數(shù)中去觀察它的代碼執(zhí)行活動(dòng)。你也可以通過(guò)點(diǎn)擊區(qū)域1底部的各個(gè)圖標(biāo)對(duì)js代碼進(jìn)行跟蹤。不過(guò)我建議你使用快捷鍵,故名思義,因?yàn)樗容^快捷方便。不過(guò)怎么用完全按照個(gè)人習(xí)慣來(lái)吧。下圖是各個(gè)按鈕的作用功能。

 在上圖藍(lán)色圓圈中數(shù)字,它們分別代表:

  1、停止斷點(diǎn)調(diào)試

  2、不跳入函數(shù)中去,繼續(xù)執(zhí)行下一行代碼(F10)

  3、跳入函數(shù)中去(F11)

  4、從執(zhí)行的函數(shù)中跳出

  5、禁用所有的斷點(diǎn),不做任何調(diào)試

  6、程序運(yùn)行時(shí)遇到異常時(shí)是否中斷的開(kāi)關(guān)

接下來(lái)在區(qū)域4種切換到Watch Expressions 選項(xiàng),它的作用是為目前斷點(diǎn)添加表達(dá)式,使得每次斷點(diǎn)往下走一步都會(huì)執(zhí)行你寫(xiě)下的js代碼。需要注意的是這個(gè)功能必須謹(jǐn)慎使用,因?yàn)檫@可能會(huì)導(dǎo)致你寫(xiě)下的監(jiān)控代碼段會(huì)不斷地被執(zhí)行。

為了避免你的調(diào)試代碼重復(fù)執(zhí)行,我們可以在調(diào)試時(shí)直接在console控制臺(tái)上一次性地輸出當(dāng)前斷點(diǎn)處的信息(推薦這樣做)。為了驗(yàn)證我們?cè)赾onsole面板中擁有的是當(dāng)前斷點(diǎn)環(huán)境,我門(mén)可以對(duì)比斷點(diǎn)執(zhí)行前后的this值變化。

如果你覺(jué)得在斷點(diǎn)的時(shí)候?yàn)榱丝匆粋€(gè)變量必須借用console面板輸出的方式來(lái)查看會(huì)比較麻煩,那么你可以更新最新版的Chrome,它已經(jīng)為我們解決了這個(gè)煩惱。為了方便開(kāi)發(fā)者調(diào)試,在這一點(diǎn)上谷歌已經(jīng)做到了極致,就在前幾天更新過(guò)Chrome以后,鹵煮意外地發(fā)現(xiàn)了斷點(diǎn)時(shí)監(jiān)控環(huán)境變量的另外一種方式,這種方式極為清晰,在斷點(diǎn)調(diào)試的時(shí)候,區(qū)域2中會(huì)自動(dòng)顯示每個(gè)變量的值,每次代碼往下走的時(shí)候這個(gè)值都回時(shí)時(shí)更新。這讓開(kāi)發(fā)者對(duì)當(dāng)前環(huán)境變量幾乎可以說(shuō)是一目了然。(此功能有一個(gè)小缺陷,那就是無(wú)法查看數(shù)組或者對(duì)象的具體索引和值,不過(guò)我相信google會(huì)改進(jìn)它的。)

當(dāng)你的項(xiàng)目已經(jīng)線(xiàn)上,出現(xiàn)了一個(gè)bug,你修復(fù)了之后無(wú)法看到它真正在線(xiàn)上的效果,那么你可以在打開(kāi)線(xiàn)上的項(xiàng)目,直接在瀏覽器中修改代碼然后看到效果。這樣的效果往往是最直接的,這種方法也能幫你省去頻繁驗(yàn)證發(fā)布的麻煩,畢竟身為前端碼農(nóng)的你也一定會(huì)聽(tīng)到過(guò)后臺(tái)(通常情況下是后臺(tái)發(fā)布)大哥的抱怨:“XXX,測(cè)試通過(guò)了沒(méi),不要出現(xiàn)了哈,發(fā)布一次很麻煩的!”。而在Chrome里面,只需要在區(qū)域2種直接修改,你就可以驗(yàn)證你的代碼在線(xiàn)上是否可行。鹵煮在此處只是指出該功能的用法之一。其他的就憑諸位的聰明才智去想了。

即使在斷點(diǎn)時(shí),你也可以編輯代碼,按ctrl+S保存之后,你會(huì)看到區(qū)域2的背景由白色變?yōu)闇\色,而斷點(diǎn)會(huì)重新開(kāi)始執(zhí)行。

回到區(qū)域1,Content script 選項(xiàng)開(kāi)里面包含著一些第三方插件或者瀏覽器自身的js代碼,經(jīng)常它是被忽略的,實(shí)際上它的作用很少。我們可以更多關(guān)注一下Snippets選項(xiàng)。還記得基礎(chǔ)篇里面介紹的style嗎?在里面我們可以編輯界面的css代碼并且即時(shí)看到它們的映射效果,同樣地,在Sinppets中,我們也 可以編輯(重寫(xiě))js代碼片段。這些片段實(shí)際上就相當(dāng)于你的js文件一樣,不同的是本地的js文件在編輯器里面編輯的,而此處,你是在瀏覽器中編寫(xiě)的。這些代碼片段在瀏覽器刷新的時(shí)候既不會(huì)消失,也不會(huì)執(zhí)行,除非是你手動(dòng)執(zhí)行它。它可以存在你的本地瀏覽器中,即使關(guān)閉瀏覽器,再次打開(kāi)時(shí)它依然還在那里。它的主要作用可以使得我們編寫(xiě)一些項(xiàng)目的測(cè)試代碼時(shí)提供便捷,你知道,如果你在編輯器上編寫(xiě)這些代碼,在發(fā)布時(shí)你必須為它們添加注釋符號(hào)或者手動(dòng)刪除它們,而在瀏覽器上編寫(xiě)就不需要這樣繁瑣了。

在Snippets選項(xiàng)的空白處右鍵后選擇彈出的new選項(xiàng),建立一個(gè)你自...

細(xì)說(shuō)網(wǎng)頁(yè)開(kāi)發(fā)者工具F12-前端開(kāi)發(fā)利器一 行業(yè)視頻課程

img

埃爾維斯

關(guān)注

網(wǎng)頁(yè)開(kāi)發(fā)者工具之 Elements

前言

寫(xiě)這篇文章的目的主要是為了幫助前端小白,學(xué)習(xí)使用瀏覽器自帶的F12網(wǎng)頁(yè)開(kāi)發(fā)者工具,來(lái)快速定位調(diào)試分析問(wèn)題、解決問(wèn)題。當(dāng)然這僅是作者的個(gè)人學(xué)習(xí)心得,有不足之處歡迎大家指點(diǎn)。由于篇幅有限,這篇文章僅介紹Elements。若覺(jué)得不錯(cuò)請(qǐng)關(guān)注作者的后續(xù)更新。

如何在F12工具中定位元素

這里拿我的博客作為網(wǎng)頁(yè)、用Chrome谷歌瀏覽器作為例子。打開(kāi)網(wǎng)頁(yè),按下鍵盤(pán)上的F12鍵。點(diǎn)擊Elements欄,選擇body元素,如下圖:

1.左邊用半透明藍(lán)色覆蓋表示被選區(qū)域,仔細(xì)看左下角還有個(gè)標(biāo)志顯示元素名稱(chēng)和寬高。

2.中部?jī)?nèi)容就是Elements,即頁(yè)面元素。看圖可以發(fā)現(xiàn)我們選擇了body元素

3.右側(cè)區(qū)域?yàn)镾tyle,即css樣式,顯示的是被選元素對(duì)應(yīng)的css。這樣就非常方便我們調(diào)試樣式。

這里我們假設(shè)有個(gè)需求,需要右邊頭像的元素代碼和css演示。我們不需要右鍵查看源代碼(早期有些教程會(huì)使用這個(gè)方法)。

可以使用F12工具的左上角的指針工具

1.鼠標(biāo)左鍵單擊指針工具,單擊后工具會(huì)變?yōu)樗{(lán)色狀態(tài)

2.移動(dòng)鼠標(biāo)到頭像上,你會(huì)發(fā)現(xiàn)自動(dòng)出現(xiàn)藍(lán)色半透明選框。會(huì)顯示元素標(biāo)簽和寬高

3.點(diǎn)擊確認(rèn)后,你會(huì)發(fā)現(xiàn)中部Elements會(huì)自動(dòng)定位到頭像代碼,右邊Style也會(huì)自動(dòng)定位到頭像的css樣式

4.在中部選擇元素后,可以右鍵復(fù)制代碼。

5.在左側(cè)的Style面板中,點(diǎn)擊css右邊的css文件名也可以定位到個(gè)css文件中的具體位置

但是有些特殊的樣式需要鼠標(biāo)到達(dá)某一特殊位置的時(shí)候才會(huì)觸發(fā),我們?cè)偃c(diǎn)指針的時(shí)候就會(huì)回到原位。(比如博客右側(cè)的小埋,需要鼠標(biāo)hover才能觸發(fā))。

我們可以將鼠標(biāo)移上去后,按快捷鍵Ctrl+Shift+C直接使用指針工具。就可以獲取這些特殊樣式的css代碼

還有些時(shí)候,我們需要搜索頁(yè)面中的某些內(nèi)容。在中部Elements中使用Ctrl+F打開(kāi)搜索框:

如圖我們搜索“一個(gè)好”就得到的想要的元素位置。

F12工具中的盒子模型

還有個(gè)東西這里提一下,選擇任意一個(gè)元素,在右邊的Style面板下拉倒最下面,都可以看到我們的盒子模型(網(wǎng)頁(yè)設(shè)計(jì)中常聽(tīng)的屬性名:內(nèi)容(content)、內(nèi)邊距(padding)、邊框(border)、外邊距(margin)。這些屬性我們可以用日常生活中的常見(jiàn)事物——盒子作一個(gè)比喻來(lái)理解,所以叫它盒子模式。)

這里可以看出padding的值

這個(gè)是margin值

如何在F12工具中直接修改頁(yè)面

比如我們要修改下面這個(gè)標(biāo)題

直接在Element面板下,雙擊修改其文本的內(nèi)容(這里改成余額好多錢(qián),是不是以后都不能相信截圖了)

接下來(lái)嘗試修改其css,我們選擇修改其字體顏色和大小

直接在Style面板下修改:顏色改成紅色,字體調(diào)大至32px。效果如下

我們也可以直接新加css元素,比如加個(gè)border(邊框)。

移動(dòng)端開(kāi)發(fā)

若是要調(diào)試移動(dòng)端頁(yè)面怎么辦?

我們只要點(diǎn)擊指標(biāo)工具右邊的移動(dòng)端工具就行,其他的和pc端一樣。效果如下:

最后的也是最重要的事

不要在他人電腦上不使用瀏覽器的記住密碼功能!不使用瀏覽器的記住密碼功能!不使用瀏覽器的記住密碼功能!不使用瀏覽器的記住密碼功能!

為什么?這里作者來(lái)舉個(gè)有道云筆記的栗子:

這是作者使用瀏覽器保密碼的有道云筆記的登錄頁(yè)面,你可以看到瀏覽器默認(rèn)給你填充好了賬號(hào)和密碼。密碼使用···號(hào)表示并不可見(jiàn)。

但是,我們打開(kāi)F12工具:

用指針工具選擇密碼框。

只要將其input的輸入框的type=”password”值改為type=”text”,你的密碼就暴露無(wú)遺

希望這篇文章能給你帶來(lái)知識(shí)和樂(lè)趣,喜歡作者的文章可以點(diǎn)擊右上角關(guān)注哦()

這些網(wǎng)站開(kāi)發(fā)注意事項(xiàng),開(kāi)發(fā)者須知! 公司視頻課程

網(wǎng)站開(kāi)發(fā)之前需要注意哪些?作為開(kāi)發(fā)者的你知道嗎?大部分的人在進(jìn)行網(wǎng)站開(kāi)發(fā)時(shí)都會(huì)直接將建站給專(zhuān)業(yè)的網(wǎng)站開(kāi)發(fā)公司,但殊不知,開(kāi)發(fā)公司即便能力再?gòu)?qiáng),但對(duì)于企業(yè)文化和產(chǎn)品服務(wù)也不了解,針對(duì)的人群更加不了解。所以稍加不注意,就會(huì)讓之前的努力付之東流。那么網(wǎng)站開(kāi)發(fā)之前,我們還需要注意哪些事情呢?

網(wǎng)站開(kāi)發(fā)之前確定建站費(fèi)用

大部分的企業(yè)在進(jìn)行網(wǎng)站開(kāi)發(fā)之前對(duì)于項(xiàng)目都有一個(gè)大概的預(yù)估,但實(shí)際上在真正建站的過(guò)程中其實(shí)是會(huì)超過(guò)預(yù)算的,因?yàn)榫W(wǎng)站開(kāi)發(fā)的每一個(gè)細(xì)節(jié)都有花銷(xiāo),比如說(shuō)從剛開(kāi)始的域名購(gòu)買(mǎi)到建站費(fèi)用到后期的安全維護(hù)等問(wèn)題,無(wú)一不要話(huà)費(fèi)一定數(shù)額的金錢(qián)??赡苓@些單獨(dú)拿開(kāi)來(lái)看,每個(gè)項(xiàng)目花的錢(qián)都不多,但是林林總總地堆加在一起,網(wǎng)站開(kāi)發(fā)就很容易超額支付。

站開(kāi)發(fā)之前明確建站需求

這就是小編在開(kāi)篇給大家說(shuō)的,網(wǎng)站開(kāi)發(fā)之前一定要明確建站的需求、目的。開(kāi)發(fā)公司只能盡最大的努力將網(wǎng)站開(kāi)發(fā)到極致,但卻沒(méi)有辦法了解到企業(yè)的文化和產(chǎn)品信息,所以為了讓自己可以得到一個(gè)滿(mǎn)意的網(wǎng)站,我們?cè)诮ㄕ局靶枰崆白龊脺?zhǔn)備,這樣想問(wèn)題才能更加全面。并且在網(wǎng)站開(kāi)發(fā)過(guò)程中還要與他們多加交流,將自己建站想法告訴他們,有助于幫助他們建成你想要的網(wǎng)站形式。

網(wǎng)站開(kāi)發(fā)之前了解建站公司實(shí)力

業(yè)務(wù)也是實(shí)力的體現(xiàn),我們?cè)趯ふ议_(kāi)發(fā)公司時(shí),要尋找可靠一點(diǎn)的開(kāi)發(fā)公司,而不要只看價(jià)格,尤其要注重售后服務(wù)這方面。因?yàn)橛行┕驹谀阗I(mǎi)東西之前將東西夸得天花亂墜,當(dāng)你付了錢(qián)以后就撒手不管了,所以最好把售后這方面的問(wèn)題問(wèn)得全面一些,以免出了問(wèn)題找不到人處理。

以上便是

成都網(wǎng)站開(kāi)發(fā)公司

銘代碼科技為大家?guī)?lái)的關(guān)于網(wǎng)站開(kāi)發(fā)之前應(yīng)該做好哪些準(zhǔn)備工作的闡述。想要做好網(wǎng)站建設(shè)或者是符合企業(yè)形象,符合產(chǎn)品特性的網(wǎng)站,其實(shí)不難,但前提是我們?cè)诰W(wǎng)站開(kāi)發(fā)之前的準(zhǔn)備工作一定要做到位,這樣不僅實(shí)施起來(lái)也比較順利,不至于有很多的麻煩出現(xiàn)還有助于開(kāi)發(fā)出更加符合企業(yè)要求的網(wǎng)站。

開(kāi)發(fā)者必看:25個(gè)最好的編程網(wǎng)站,你知道幾個(gè)? 行業(yè)視頻課程

img

季季

關(guān)注

如今,學(xué)習(xí)如何編程已不再是 IT 專(zhuān)業(yè)人員和軟件工程師的專(zhuān)職了。隨著絕大多數(shù)企業(yè)都將自己的業(yè)務(wù)遷移到了網(wǎng)上,如何準(zhǔn)確呈現(xiàn)網(wǎng)站訪(fǎng)問(wèn)者想看到的,和如何能夠交互網(wǎng)站內(nèi)容就顯出尤為重要。

可見(jiàn),了解如何編寫(xiě)程序已是一項(xiàng)需要學(xué)習(xí)的、直接影響到個(gè)人職業(yè)發(fā)展的、非常重要的技能。

可以說(shuō),如果您能給線(xiàn)上服務(wù)帶來(lái)價(jià)值,那么您就會(huì)對(duì)任何業(yè)務(wù)產(chǎn)生積極的、可估量的影響。

在哪兒能學(xué)到在線(xiàn)編程?其實(shí),我們有許多不同類(lèi)型的學(xué)習(xí)方式,包括:各種預(yù)制的學(xué)習(xí)路徑,以及采取單獨(dú)的個(gè)人定制課程。

在此,我為正在尋找編程學(xué)習(xí)資源的您,列舉了 25 個(gè)最好的網(wǎng)站,供您參考和選用。

1.Codecademy(https://codecademy/)

Codecademy 致力于提供最好的學(xué)習(xí)體驗(yàn),打造最好的編程學(xué)習(xí)網(wǎng)站。Codecademy 考慮到編程不應(yīng)該是傳統(tǒng)思維所考慮的那種公立學(xué)校教育模式,而是應(yīng)該找到了一種在線(xiàn)課堂的模式,來(lái)掌控教育的效果。

Codecademy 所要構(gòu)建的教育模式是為整個(gè)世界的用戶(hù)提供一種引人入勝的教育體驗(yàn)。

如今,超過(guò) 2400 萬(wàn)名學(xué)員正在通過(guò)使用 Codecademy 所提供的 JavaScript、HTML、CSS、PHP、jQuery、Ruby 和 Python 課程,來(lái)學(xué)習(xí)如何自行編寫(xiě)代碼。

而且,該網(wǎng)站擁有超過(guò) 300 小時(shí)的免費(fèi)在線(xiàn)內(nèi)容,為世界各地?cái)?shù)以百萬(wàn)的用戶(hù)提供學(xué)習(xí)服務(wù)。

這些用戶(hù)可能在編程技能和電腦知識(shí)上參差不齊,但是他們總能在此獲得自己想要的知識(shí)。

2.Udemy(https://udemy/)

該在線(xiàn)學(xué)習(xí)平臺(tái)成立于 2010 年,它被作為個(gè)人學(xué)習(xí)和工作技能的一種提高方式。

在網(wǎng)站上,它有一個(gè)小部分可選的、帶有視頻的免費(fèi)編程課程,當(dāng)然也有一些整套售賣(mài)的課程。

它是一個(gè)全球性的在線(xiàn)教育和學(xué)習(xí)平臺(tái),來(lái)自各自領(lǐng)域的專(zhuān)家級(jí)導(dǎo)師在此提供了超過(guò) 45000 種課程庫(kù),以幫助學(xué)員掌握新的技能,并達(dá)到他們的目標(biāo)。

該網(wǎng)站上有著大量的、售價(jià)從免費(fèi)到 200 美元以上不等的編程課程。同時(shí),網(wǎng)站也為不知道自己喜歡什么、想學(xué)什么的零基礎(chǔ)訪(fǎng)客準(zhǔn)備了足夠多的免費(fèi)課程。

學(xué)員們不但能夠看到那些被系統(tǒng)評(píng)為五顆星的課程,他們還能看到其他學(xué)員的評(píng)論。

3.EdX(https://edx.org/)

這是一個(gè)非營(yíng)利性質(zhì)的、開(kāi)源的、優(yōu)秀的在線(xiàn)學(xué)習(xí)平臺(tái)。它成立于 2012 年,由哈佛和麻省理工創(chuàng)辦,您可以在此學(xué)到最新的前沿理論和技術(shù)。

EdX 在全球擁有超過(guò) 90 多個(gè)合作伙伴,包括一些世界領(lǐng)先的非營(yíng)利組織、大學(xué)和機(jī)構(gòu)。網(wǎng)站會(huì)員可以選擇來(lái)自 60 所院校的課程。

由于 EdX 是由各所大學(xué)創(chuàng)立并管理的,因此其課程主要集中在工程、計(jì)算機(jī)科學(xué)、語(yǔ)言、寫(xiě)作、市場(chǎng)營(yíng)銷(xiāo)、生物學(xué)等領(lǐng)域。

開(kāi)放式 EdX 提供著各種免費(fèi)的課程。不同的技術(shù)專(zhuān)家和教育工作者都能夠?yàn)樵撈脚_(tái)構(gòu)建工具、并添加新功能、以及創(chuàng)造出讓全球?qū)W員都能受益的突破性方案。

4.Coursera(https://coursera.org/)

自 2012 年成立以來(lái),Coursera 已發(fā)展成為了一個(gè)大型的非營(yíng)利性的教育科技公司,它提供來(lái)自 119 個(gè)機(jī)構(gòu)的超過(guò) 1000 門(mén)課程。

其中一些來(lái)自于 Vanderbilt 大學(xué)、多倫多大學(xué)、斯坦福大學(xué),和華盛頓大學(xué)的入門(mén)級(jí)免費(fèi)課程。當(dāng)然,某些更高級(jí)的課程還是要收費(fèi)的。

課程語(yǔ)言包括英語(yǔ)、西班牙語(yǔ)和法語(yǔ),而課程下方一般也配有英文、西班牙語(yǔ)或中文字幕。

課程類(lèi)型包括:商業(yè)、科學(xué)和計(jì)算機(jī)科學(xué)等??梢哉f(shuō),每一門(mén)視頻講座都是由世界頂尖的教育機(jī)構(gòu)、社區(qū)論壇、和同行評(píng)審作品所提供。

學(xué)員在完成了他們的課程之后,會(huì)獲得一份課程電子證書(shū)。一般而言,課程的周期從 4 到 6 周不等,售價(jià)通常為 29 美元到 99 美元,它們不僅有在線(xiàn)模式,還提供大家遠(yuǎn)程訪(fǎng)問(wèn)的主機(jī)。

5.Simpliv(https://simpliv/)

Simpliv 是基于 CA 的在線(xiàn)學(xué)習(xí)平臺(tái)。它旨在將教育延伸到世界的每個(gè)角落,并幫助那些想通過(guò)學(xué)習(xí)改變現(xiàn)狀的人們。該平臺(tái)的課程品類(lèi)非常廣闊:從心理學(xué)到管理學(xué),從靈氣學(xué)到財(cái)務(wù)管理。

學(xué)員可以自行選擇他們喜歡的編程語(yǔ)言,如 C++、Java、JavaScript、Rust、Ruby、PHP、SQL、Swift、TypeScript 和 Crystal 等。

同時(shí),他們可以通過(guò)自我挑戰(zhàn)來(lái)提高自己的編程技能。通過(guò)使用自己的瀏覽器和各種測(cè)試用例,他們能夠自行檢查學(xué)習(xí)的進(jìn)度。

Simpliv 通常使用創(chuàng)新、新建和優(yōu)化的學(xué)習(xí)方法,來(lái)幫助學(xué)員“沉淀”他們所學(xué)到的知識(shí)。

6.FreeCodeCamp(https://freecodecamp/)

Free Code Camp 的主要宗旨是向非營(yíng)利組織傳授編程技能。目前,該組織已解決了 3000 萬(wàn)條編程難題,并為開(kāi)發(fā)工作捐贈(zèng)了超過(guò) 140 萬(wàn)美元。

除此之外,超過(guò) 4000 多名學(xué)員已通過(guò) Free Code Camp 所提供的課程學(xué)習(xí)找到了工作。

該平臺(tái)的課程種類(lèi)包括:HTML5、CSS3 和 JavaScript 等。通過(guò)社區(qū)聊天室,學(xué)員們能夠得到實(shí)時(shí)的幫助,同時(shí)也能夠見(jiàn)到同城的其他開(kāi)發(fā)者。

學(xué)員們不但可以按照自己的節(jié)奏進(jìn)行學(xué)習(xí),還能夠按需使用電腦或手機(jī)進(jìn)行在線(xiàn)學(xué)習(xí)。

在學(xué)習(xí)過(guò)程中,每個(gè)學(xué)員需要將自己的身份與自己的實(shí)際的應(yīng)用套件相組合。

課程的傳授方式包括:教學(xué)互動(dòng)、集中式作業(yè)和教程發(fā)布等。另外,它對(duì)于初學(xué)者來(lái)說(shuō)是免費(fèi)的。

7.GitHub(https://github/)

程序員們經(jīng)常將 GitHub 作為一個(gè)速查的參考點(diǎn)。在 Git 的托管存儲(chǔ)庫(kù)中有著 500 多本免費(fèi)的編程書(shū)籍,覆蓋 80 多種不同的編程語(yǔ)言。另外,網(wǎng)站合作者們也持續(xù)保持著資源的更新與準(zhǔn)確。

8.Odin 項(xiàng)目(https://theodinproject/)

這是維京代碼學(xué)校(知名的在線(xiàn)編程訓(xùn)練營(yíng))的免費(fèi)版本。根據(jù) Odin 項(xiàng)目設(shè)定的學(xué)習(xí)路徑,學(xué)員能夠獲取學(xué)習(xí) Web 開(kāi)發(fā)和編程的正確方式。

學(xué)員們?cè)谠擁?xiàng)目中建立自己的檔案信息,這將有助于后續(xù)的學(xué)習(xí)進(jìn)程、以及職業(yè)道路。

在 Odin 項(xiàng)目中學(xué)員也能夠方便地找到志同道合的學(xué)友。在此,學(xué)員們通過(guò)學(xué)習(xí)諸如:Web 開(kāi)發(fā)入門(mén)、網(wǎng)站開(kāi)發(fā) 101、Ruby 編程、HTML5、Ruby 規(guī)則、CSS3、jQuery 和 JavaScript,最終將成為一名 Web 開(kāi)發(fā)人員。

Odin 項(xiàng)目提供的課程類(lèi)型包括:視頻、教程、博客、以及專(zhuān)題課程。它們通過(guò)各種課程來(lái)引導(dǎo)學(xué)員構(gòu)建自己的不同項(xiàng)目。

9.Khan(可汗)學(xué)院(https://khanacademy.org/)

該網(wǎng)站提供了各種形式的教育實(shí)踐活動(dòng)、個(gè)性化的學(xué)習(xí)儀表板(進(jìn)度)顯示、和教學(xué)視頻。

來(lái)自世界各地?cái)?shù)以百萬(wàn)計(jì)的學(xué)員,能夠按照自己的節(jié)奏去學(xué)習(xí)編程要領(lǐng)。該平臺(tái)的資源可被翻譯成 36 多種語(yǔ)言。另外,網(wǎng)頁(yè)編程類(lèi)學(xué)員可以使用其擴(kuò)展的編程教育課程和資源網(wǎng)頁(yè)。

該機(jī)構(gòu)的使命是提供一個(gè)世界級(jí)的、向任何地方、對(duì)任何人開(kāi)放的免費(fèi)教育平臺(tái)。

學(xué)員們既可以瀏覽全部,也可以通過(guò)諸如視頻、文章、程序和練習(xí)等分類(lèi)來(lái)查找自己喜歡的資源。

另外,學(xué)院既有一些剛?cè)胄械某鯇W(xué)者課程,也有適合那些希望提高編程技能的專(zhuān)業(yè)人士課程。

10.MIT(麻省理工)開(kāi)放式課程(https://ocw.mit.edu/index.htm)

麻省理工開(kāi)放式課程的特點(diǎn)是任何人無(wú)需申請(qǐng),只要有一臺(tái)電腦,就可以訪(fǎng)問(wèn)其課程。它們根據(jù)不同的主題設(shè)立了在線(xiàn)圖書(shū)館,訪(fǎng)客不需要任何帳戶(hù)便可登錄。

他們可以瀏覽所有可用的課程,甚至可以對(duì)查找結(jié)果進(jìn)行評(píng)估、根據(jù)是否為講義、視頻、音頻、以及在線(xiàn)教科書(shū)等特征進(jìn)行篩選。

同時(shí),麻省理工開(kāi)放式課程也能幫助各位教師改善他們的課程,讓學(xué)員尋找獲取進(jìn)階的增值資源。

總的說(shuō)來(lái),學(xué)員完全可以免費(fèi)地、自行選擇想要學(xué)習(xí)的編程課程,而且能夠完全按照自己的節(jié)奏去完成。

11.UdaCity(https://udacity/)

UdaCity 的宗旨是向全世界提供經(jīng)濟(jì)實(shí)惠、方便、且高效的技能教育。這些教學(xué)內(nèi)容是如今行業(yè)領(lǐng)先的公司(包括 Facebook、Google、IBM 和 AT&T)所亟需和認(rèn)可的,也是傳統(tǒng)學(xué)校鮮少涉及到的。

由導(dǎo)師、評(píng)審人員和教練所組成的團(tuán)隊(duì),會(huì)對(duì)學(xué)員的水平進(jìn)行把關(guān),以確保他們勝任其目標(biāo)崗位。

學(xué)員們可以免費(fèi)學(xué)習(xí) JavaScript 的基礎(chǔ)課程,而對(duì)于一些深入的課程則需付費(fèi)。

12.Code Avengers(https://codeavengers/)

該平臺(tái)通過(guò) 1000 多項(xiàng)熱門(mén)的編程問(wèn)題、測(cè)驗(yàn)、和視頻,為學(xué)員提供專(zhuān)業(yè)的、步進(jìn)式的指導(dǎo)。

學(xué)員從學(xué)習(xí)如何構(gòu)建簡(jiǎn)單的網(wǎng)站和應(yīng)用開(kāi)始,迅速進(jìn)階到真正的、能向潛在雇主展示的應(yīng)用場(chǎng)景之中。

當(dāng)前,該平臺(tái)擁有來(lái)自 190 多個(gè)國(guó)家的超過(guò)一百萬(wàn)名學(xué)員,他們或?qū)崿F(xiàn)著自己的目標(biāo)、或嘗試著改變世界、或開(kāi)辦自己的公司。

因此,普通學(xué)員可以免費(fèi)使用其 7 天、每門(mén) 5 個(gè)課時(shí)的受限教程;而其付費(fèi)的無(wú)限制套餐則包括所有的課程、測(cè)驗(yàn)、項(xiàng)目、和應(yīng)用渠道。

13.David Walsh 博客(https://davidwalsh.name/)

David Walsh 是一名 33 歲的 Web 開(kāi)發(fā)人員和軟件工程師。他既是 Mozilla 的高級(jí)軟件工程師,又是自己博客的技術(shù)作者,還為世界各地的其他會(huì)議提供演講服務(wù)。

他擅長(zhǎng)于 MooTools JavaScript 框架,并能創(chuàng)建 MooTools 插件;同時(shí)他也是 Script & Style、以及 Wynq Web 實(shí)驗(yàn)室的創(chuàng)始人。

他時(shí)常撰寫(xiě) JavaScript、AJAX、PHP、WordPress、CSS、以及 HTML5 等方面的博文。訪(fǎng)客可以通過(guò)搜索其博文的關(guān)鍵字標(biāo)簽,來(lái)獲取并學(xué)習(xí)相關(guān)文章。

14.Tuts+(https://tutsplus/)

該平臺(tái)以免費(fèi)和付費(fèi)兩種形式提供由專(zhuān)業(yè)人士打造的,超過(guò) 570 個(gè)視頻課程。同時(shí),Tuts+ 也出版電子書(shū),并支持用戶(hù)的搜索功能。

該網(wǎng)站所擁有的課程類(lèi)型不僅限于計(jì)算機(jī)方面,它通過(guò)成千上萬(wàn)種免費(fèi)教程,向?qū)W員傳授開(kāi)發(fā) Web 應(yīng)用、和移動(dòng)設(shè)備等方面的知識(shí)。

Tuts+ 將初學(xué)者教程分為三大類(lèi):

通過(guò) Web 開(kāi)發(fā),來(lái)教授開(kāi)發(fā)語(yǔ)言、框架、和所有相關(guān)工具。通過(guò)提供素材,讓學(xué)員成為WordPress插件和主題方面的專(zhuān)家。傳授能夠用于各種平臺(tái)(包括 Android 和 iOS)的移動(dòng)開(kāi)發(fā)技能。

15.SitePoint(https://sitepoint/)

SitePoint 是一個(gè) Web 開(kāi)發(fā)者的分享中心,同時(shí)它也能給設(shè)計(jì)師、開(kāi)發(fā)者、創(chuàng)業(yè)者、產(chǎn)品經(jīng)理和程序員提供幫助。

訪(fǎng)客可以簡(jiǎn)單地在其搜索框中輸入關(guān)鍵詞,以查找并瀏覽相關(guān)文章。而各種文章既可以按照類(lèi)別排序,也可以按照作者排序。

當(dāng)然,訪(fǎng)客還可以使用其菜單欄,搜索自己想要的編程語(yǔ)言,其中包括:HTML、CSS、JavaScript、PHP、Ruby、移動(dòng)應(yīng)用設(shè)計(jì)、WordPress、和 Java 等。

16.HTML5 Rocks(https://html5rocks/en/)

這個(gè)網(wǎng)站創(chuàng)辦于 2010 年,涵括了有關(guān) HTML5 的所有更新資源與教程。由于它是開(kāi)源的,因此開(kāi)發(fā)者可以任意使用其 HTML5 的代碼。

由于其課程相對(duì)專(zhuān)業(yè),因此不太適合入門(mén)級(jí)開(kāi)發(fā)者。訪(fǎng)客可以通過(guò)站內(nèi)搜索來(lái)瀏覽所有教程。

許多教程的作者都來(lái)自于不同領(lǐng)域、使用不同語(yǔ)言的 Web 開(kāi)發(fā)和編程高手。

17.Hack.pledge()(https://hackpledge.org/)

該網(wǎng)站是一個(gè)開(kāi)發(fā)者的互助社區(qū),導(dǎo)師和學(xué)員們可以在此持續(xù)交換信息,從而將那些可能被“卡殼”的時(shí)間,轉(zhuǎn)換為提升寫(xiě)出更好代碼的速度。

為了降低運(yùn)營(yíng)成本,它通過(guò) Pluralsight(在線(xiàn)教育網(wǎng)站)來(lái)將導(dǎo)師與學(xué)員自動(dòng)關(guān)聯(lián),以促進(jìn)學(xué)習(xí)成果的轉(zhuǎn)化。同時(shí)只要導(dǎo)師在線(xiàn),學(xué)員們就能夠按需免費(fèi)地得到他們的指導(dǎo)。

18.aGupieWare(http://blog.agupieware/2014/05/online-learning-bachelors-level.html)

這實(shí)際是一個(gè)被用來(lái)調(diào)查全美頂級(jí)機(jī)構(gòu)的獨(dú)立應(yīng)用開(kāi)發(fā)平臺(tái)。麻省理工學(xué)院、伯克利、卡耐基-梅隆大學(xué)、和哥倫比亞大學(xué)在此提供了各種免費(fèi)的課程。

該平臺(tái)上有 15 種課程,分別是:3 門(mén)介紹課、7 門(mén)核心課、以及 5 門(mén)選修課。雖然該網(wǎng)站并不提供學(xué)分,但它的確是初學(xué)計(jì)算機(jī)程序設(shè)計(jì)與編程的好地方。

其在線(xiàn)學(xué)習(xí)課程根據(jù)學(xué)員們的學(xué)習(xí)軌跡進(jìn)行劃分,包括 Python、計(jì)算機(jī)科學(xué)、敏捷開(kāi)發(fā)、黑客學(xué)、安全測(cè)試、和 Linux。此外,其博客里也有許多有關(guān)最新電腦技術(shù)的文章。

19.Crunchzilla(http://crunchzilla/)

該平臺(tái)由數(shù)據(jù)專(zhuān)家、代碼專(zhuān)家、代碼怪物、和游戲?qū)<宜膫€(gè)板塊組成,它是一個(gè)適合于各個(gè)年齡階段學(xué)習(xí)者進(jìn)行編程實(shí)驗(yàn)、測(cè)試和研究的網(wǎng)站。

一般而言,代碼怪物提供最簡(jiǎn)單的教程,適合于 9-14 歲的青年學(xué)習(xí)。代碼專(zhuān)家的目標(biāo)人群是 13 歲及以上,提供了更難更深的議題,以及更多的解釋。

游戲?qū)<沂菍?zhuān)為已經(jīng)有一些編程經(jīng)驗(yàn)的青少年和成年人準(zhǔn)備的,它通過(guò)步進(jìn)式教程教您如何編寫(xiě)視頻游戲。

上述三個(gè)板塊通過(guò)實(shí)時(shí)的課程方式,以動(dòng)手為主、解釋為輔。數(shù)據(jù)專(zhuān)家板塊則專(zhuān)注于數(shù)據(jù)統(tǒng)計(jì),能夠提供統(tǒng)計(jì)的相關(guān)問(wèn)題,并為新項(xiàng)目提供數(shù)據(jù)。

20.Dash General Assembly(https://dash.generalassemb.ly/)

這是一個(gè)免費(fèi)且有趣的在線(xiàn)課程網(wǎng)站。用戶(hù)可以在瀏覽器上簡(jiǎn)單地實(shí)踐它所涉及到的 Web 開(kāi)發(fā)基礎(chǔ)知識(shí)和項(xiàng)目。

例如:

用戶(hù)既可以學(xué)到 HTML5 的正確編程方式,又能學(xué)習(xí)如何構(gòu)建美觀現(xiàn)代的網(wǎng)站、以及如何設(shè)計(jì)頁(yè)面導(dǎo)航和內(nèi)容布局。CSS3 資源將幫助用戶(hù)創(chuàng)建全功能的登陸頁(yè)面,包括:時(shí)髦的導(dǎo)航欄、多欄目布局、和移動(dòng)響應(yīng)式設(shè)計(jì)等。用戶(hù)可以通過(guò)學(xué)習(xí) JavaScript,來(lái)創(chuàng)建一個(gè)管理用戶(hù)事件的動(dòng)態(tài)界面、以及添加用戶(hù)交互的動(dòng)畫(huà)效果等。

Dash GeneralAssembly 面向未來(lái)地為學(xué)員免費(fèi)提供了職場(chǎng)熱門(mén)需求的編程技能和培訓(xùn)。

細(xì)說(shuō)網(wǎng)頁(yè)開(kāi)發(fā)者工具F12-前端開(kāi)發(fā)利器二 公司視頻課程

img

含羞草

關(guān)注

前言

寫(xiě)這篇文章是細(xì)說(shuō)網(wǎng)頁(yè)開(kāi)發(fā)者工具F12 - 前端開(kāi)發(fā)利器的第二篇文章,若覺(jué)得不錯(cuò)請(qǐng)關(guān)注作者。

F12之Console

就是位于Elemnets右邊的,打開(kāi)后你會(huì)發(fā)現(xiàn)什么都沒(méi)有

我們?cè)囍M(jìn)入到友鏈頁(yè)面,發(fā)現(xiàn)console面板出現(xiàn)了一些警告。這是因?yàn)樵趆ttps域名下使用http的資源引起的警告。

為了更好的示范,我們這里新建一個(gè)html文件,代碼如下

我們可以看出js的console.log方法可以在console面板輸出內(nèi)容

這里我們嘗試書(shū)寫(xiě)錯(cuò)誤的語(yǔ)法,console面板會(huì)報(bào)錯(cuò),顯示錯(cuò)誤信息以及錯(cuò)誤所在的行號(hào)

我們還可以直接在console面板直接編寫(xiě)我們的js代碼。

在百度首頁(yè)打開(kāi)console面板還可以看見(jiàn)百度的招聘信息。

F12之Sources

Sources面板下可以看到網(wǎng)頁(yè)加載的各種資源,這里我們看到除了本域名下的資源,還加載了百度的統(tǒng)計(jì),還有新浪微博的相冊(cè)。

通過(guò)這個(gè)面板我們可以管理網(wǎng)站是否有用到其他網(wǎng)站的資源

未完待續(xù)……Continued……

希望這篇文章能給你帶來(lái)知識(shí)和樂(lè)趣

img

TOP