網(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) 流量視頻課程
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è)視頻課程
前言
寫(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)視頻課程
瀏覽器開(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è)視頻課程
網(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è)視頻課程
如今,學(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ā)利器二 公司視頻課程
前言
寫(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è)趣