瀏覽器常見的兼容問題
Ie6.0橫向margin加倍
解決方法:display:inline不瓶;
在各個瀏覽器下圖片會有空隙
解決方法:讓圖片浮動
Li之間會有間距
解決方法:用vertical-align:middle
Opacity定義元素的透明度
解決方法:filter:alpha(opacity:80)//ie支持該屬性
Opacity:0.8//支持css3的瀏覽器
z-index不起作用的bug
Ie6下 首先講講第一種z-index無論設置多高都不起作用情況每强。這種情況發(fā)生的條件 有:1、父標簽position屬性為relative匹摇;2、問題標簽含有浮動(float)屬性厅克。
網(wǎng)站性能優(yōu)化
代碼部署
代碼的壓縮和合并
避免不必要的重定向加上(/)
編碼
使用結構清晰,簡單橄维,語義化標簽
避免空的src和href
不要再html中縮放圖片
Css
精簡css選擇器
把css放在頂部
避免@import方式引入樣式
使用css3動畫取代JavaScript動畫
避免使用css表達式
Js
減少引用庫的個數(shù)
使用require.js異步加載js
Js放在頁面底部引入
避免全局查找
減少屬性查找
使用原聲方法
用switch代替復雜的if else語句
使用事件委托
使用array和join的方法來代替字符串
iOS和安卓適配問題
設置安卓的適配一般使用通用的度量單位dp? 根據(jù)dp和px的換算來計算每個型號的 適配,1dp可以換算成若干個px在不同機型上大小不一樣拴曲。
他是根據(jù)屏幕的密度來計算的争舞,所以dp也叫做密度無關像素
mdpi區(qū)間的手機,dp=px澈灼。
hdpi區(qū)間的手機竞川,1dp=1.5px。
xhdpi區(qū)間的手機蕉汪,1dp=2px流译。
xxhdpi區(qū)間的手機逞怨,1dp=3px者疤。
安卓開發(fā)里面對各個分辨率分等級(m-dpi,h-dpi,xh-dpi)等
iPhone雖然機型不多,但是經(jīng)過幾次更新?lián)Q代叠赦,屏幕也從最早的3GS(320*480)進化到了現(xiàn)在的iPhone6 plus(1920*1080)驹马。屏幕密度越來越大,如果直接用px的話除秀,還是會出現(xiàn)同樣px的UI元素糯累,在不同機型上的大小不一樣的問題。于是iOS很機智的選擇了點(point)這個和dp幾乎一模一樣的虛擬單位册踩。
在3GS上泳姐,1point=1px。
在iPhone4上暂吉,1point=2px胖秒。
在iPhone5上,1point=2px慕的。
在iPhone6上阎肝,1point=2px。
在iPhone6 plus上肮街,1point=3px风题。
面向對象開發(fā)
面向對象的三個特性:繼承、封裝嫉父、多態(tài)
原型和原型鏈
原型:每一個函數(shù)都有一個屬性叫portotype這個屬性的屬性值是一個對象沛硅,默認的只有一個叫constructor屬性,該屬性但會的是函數(shù)本身绕辖。
原型鏈:每個對象都有一個內(nèi)部屬性__proto__摇肌,原型的值可以是一個對象,也可以是null引镊,如果他的值是一個對象朦蕴,則這個對象也一定有自己的原型篮条,這樣就形成了原型鏈
實現(xiàn)繼承的方式,閉包
繼承:原型鏈繼承:將父類的實例作為子類的原型
構造函數(shù)繼承:使用父類的構造函數(shù)來增強子類實例吩抓,等于是復制父類的實例 屬性給子類
實例繼承:在子類的構造函數(shù)中繼承實例化一個父類涉茧,必須用return
閉包:
三個特性:函數(shù)套函數(shù)
內(nèi)部變量可以訪問外部變量
參數(shù)和變量不會被垃圾機制回收
gulp的5個api
Gulp.src()? ? ? 這個方法來讀取你需要操作的文件
Gulp.dest()? ? 這個方法是用來寫文件的
Gulp.task()? ? 這個方法用來定義任務,內(nèi)部使用的是Orchestrator
Gulp.watch()? 這個方法用來監(jiān)視文件的變化疹娶,當文件發(fā)生變化后伴栓,我們可以利用 它來執(zhí)行相應的任務,例如文件壓縮等
Gulp.pipe() ? 這個方法是管道的意思雨饺,只關注改變的東西
webpack基本使用
現(xiàn)在的網(wǎng)頁大部分都有很多的外部引入js文件钳垮,導致網(wǎng)頁加載速度慢,webpack 開發(fā)就是為了簡化這種情況的
webpack可以使用npm命令行來安裝
它分為單個打包和多個打包
單個打包:在終端里面通過webpack js路徑添加一個js把前面js文件打包到自定義創(chuàng)建 ? 的文件额港。
多個打包:把所有的文件打包到一個饺窿,用webpack然后寫一個入口路徑? 再指定一個出口 文件路徑。
Webpack -p是進行代碼壓縮 生產(chǎn)環(huán)境下的編譯打包
Webpack -w 監(jiān)聽文件的改動 自動編譯
babel配置將es6轉換成es5
重點:因為現(xiàn)在很多瀏覽器對es6支持比較弱所以要通過
webpack里面的babel配置來把它編譯成es5
編譯需要是三個核心的模塊babel-loader babel-core babel-preset-es2015? -D
? 然后寫一個es6語法? 導入模塊 export default{}
然后從入口entry.js里面引入 import 名字 from 模塊路徑;
配置es6就是先裝下三個模塊然后下一下配置項就ok了
http協(xié)議
對客戶端和服務器端之間數(shù)據(jù)傳輸?shù)母袷揭?guī)范移斩,格式簡稱為‘超文本傳輸協(xié)議’
特征:支持客戶/服務器模式肚医;簡單快速;靈活向瓷;無連接肠套;無狀態(tài)。
http請求:
Get:用于請求訪問已經(jīng)被url識別的資源猖任,可以通過url給服務器傳參
Post:用于傳輸信息給服務器你稚,保密工作好。
Put:傳輸文件
Delete:刪除文件朱躺,與post相反刁赖,刪除對應url位置的文件
三次握手過程
發(fā)送http請求
響應http請求并得到html代碼
瀏覽器解析html代碼
瀏覽器對頁面進行渲染
http協(xié)議有什么組成
請求行:包含請求方法,url http版本信息
請求首部字段
請求內(nèi)容字段
1狀態(tài)行:包含http版本室琢,狀態(tài)碼乾闰,狀態(tài)碼的原因短語
響應收不字段
響應內(nèi)容字段
狀態(tài)碼:
200:請求正常
3開頭的:重定向
4開頭的:請求發(fā)生錯誤,找不到資源
5開頭的:服務器錯誤盈滴,
node.js
Nodejs它的亮點就是效率高涯肩,運算速度快,單線程事件驅動巢钓,通過回調(diào)函數(shù)病苗,異步進行操作。
搭架一個簡單的服務器
引入http模塊
創(chuàng)建服務器 http.createServer((req,res)=>{
console.log(有人來了)症汹;
});
給該服務器設置一個監(jiān)聽端口server.listen(8080);
兩個參數(shù)硫朦,
req(request) 請求
Consol.log(req.url)? 請求過來的路徑信息
res(response)響應
res.write()? //這里得東西會打印到瀏覽器上
res.end()? //輸出結束
npm基本指令
Npm install? ? ? 下載模塊
Npm uninstall? ? 卸載模塊
Npm init? ? ? ? ? 初始化
Npm date? ? ? ? 更新模塊
Npm -v? ? ? ? ? 查看版本
Npm root -g? ? ? 查看安裝全局的路徑
Npm root? ? ? ? 查看當前安裝路徑
Npm remove? ? 移除
10.混合式開發(fā)打包工具是什么?
11.項目介紹
12.主要實現(xiàn)的是什么背镇?? (1)活動頁面(2)webApp的一些功能通過安卓給的一個窗口然后可以吧html嵌套進去
? ? ?