怎么說(shuō)呢,對(duì)于第一次在線(xiàn)視頻面試的我還是非常的緊張,不過(guò)也挺激動(dòng)的,因?yàn)槿f(wàn)萬(wàn)沒(méi)想到??途W(wǎng)現(xiàn)在做得這么好了,居然在線(xiàn)視頻可以寫(xiě)代碼同步到視頻的對(duì)方。不禁感嘆??途W(wǎng)在性能和網(wǎng)頁(yè)即時(shí)通訊這方面做得太好了。
正式說(shuō)面試吧,視頻一接通,面試官先讓我自我介紹,自我介紹balabala...具體順序忘記了,下面零散記錄一下吧。
面:ajax和模版拼接有什么不同?(因?yàn)槲液?jiǎn)歷里面有個(gè)項(xiàng)目用到了模版拼接。。。)
我:前者優(yōu)點(diǎn)優(yōu)點(diǎn)是有利于SEO,缺點(diǎn)是服務(wù)器壓力較前者大;后者是減輕服務(wù)器壓力,缺點(diǎn)是不利于SEO。
面:那怎么解決這個(gè)問(wèn)題呢?
我:(what?)額。。。我認(rèn)為使用VUEJS的數(shù)據(jù)雙向綁定挺好的,但是不是很了解它的性能。(數(shù)據(jù)雙向綁定的方式性能應(yīng)該挺不錯(cuò)的,有待考證)面:你知道jQuery的data()方法嗎?
我:不知道。。。
總結(jié):jQuery的data()方法向被選元素附加數(shù)據(jù),或者從被選元素獲取數(shù)據(jù)。面:那你知道jquery的事件代理和js的事件代理有什么區(qū)別嗎?
我:不知道,不過(guò)我知道事件代理是怎么回事,balabala...
面:那你怎么去匹配jquery的on方法的第二個(gè)參數(shù)?
我:使用evrnt.target去匹配。
面:有沒(méi)有更簡(jiǎn)單的方法呢?
我:暫時(shí)沒(méi)想到。。。
面:其實(shí)有原生的方法,你下去查一下吧。面:如何獲取第10秒視頻的彈幕數(shù)據(jù)?
我:嗯。。。首先要考慮這個(gè)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),如果是下面這種數(shù)據(jù)結(jié)果,直接就可以獲取到噠。。
var obj = {
1s:[data,data,...],
....
10s:[data,....]
};
面:如果是數(shù)組存儲(chǔ)的形式呢?每一項(xiàng)包括了時(shí)間和data。
我:首先看這個(gè)數(shù)組是否是有序或者有規(guī)律的間隔存儲(chǔ),如果是的話(huà),可以按照間隔規(guī)律直接獲得;如果間隔沒(méi)有規(guī)律的話(huà)可以使用二分法來(lái)進(jìn)行查找。
面:那你寫(xiě)一下二分法吧。
我:寫(xiě)。。。
面:貌似一些邊界值的處理有些問(wèn)題,還有你知道slice方法具體的參數(shù)嗎?
我:知道呀(開(kāi)始懷疑自己是不是記錯(cuò)了,難道第二參數(shù)不是end是個(gè)數(shù)?)
面試官糾正了我的一些錯(cuò)誤。。。面:你是學(xué)軟件工程的吧?那我問(wèn)你一些數(shù)據(jù)庫(kù)相關(guān)的。。。你會(huì)怎么去設(shè)計(jì)一個(gè)表呢?包括它的一些附件信息。
這part自己沒(méi)有好好準(zhǔn)備,答得很爛,所以不詳細(xì)講了,下來(lái)好好復(fù)習(xí)數(shù)據(jù)庫(kù)。。。??面:你寫(xiě)一下繼承吧。
我:我首先使用原型方法實(shí)現(xiàn)繼承,然后還有一種apply和call的方法實(shí)現(xiàn)。
面:你知道為什么可以使用apply和call嗎?
我:我理解的是child可以通過(guò)apply去引用parent的屬性或者方法。
面:不太對(duì)。。。。(跟我解釋了一下沒(méi)聽(tīng)清楚)
總結(jié):apply和call是調(diào)用一個(gè)對(duì)象的一個(gè)方法,以另一個(gè)對(duì)象替換當(dāng)前對(duì)象。 它們將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象 。從而可以實(shí)現(xiàn)繼承。-
面:HTTP在計(jì)算機(jī)網(wǎng)絡(luò)的那一層?
我:應(yīng)該是在應(yīng)用層的。
面:HTTPS呢?
我:應(yīng)該...也是在應(yīng)用層的吧
面:那你知道HTTPS如何實(shí)現(xiàn)加密的嗎?
我:SSL?不是很清楚。。總結(jié):HTTPS,是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版。 即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。 https協(xié)議需要到ca申請(qǐng)證書(shū),一般免費(fèi)證書(shū)很少,需要交費(fèi)。 http是超文本傳輸協(xié)議,信息是明文傳輸。 https 則是具有安全性的ssl加密傳輸協(xié)議http和https使用的是完全不同的連接方式用的端口也不一樣。 前者是80,后者是443。 客戶(hù)端產(chǎn)生一個(gè)對(duì)稱(chēng)的密鑰,通過(guò)server 的證書(shū)來(lái)交換密鑰. 一般意義上的握手過(guò)程.ii. 加下來(lái)所有的信息往來(lái)就都是加密的. 第三方即使截獲,也沒(méi)有任何意義.因?yàn)樗麤](méi)有密鑰。 面:你說(shuō)說(shuō)如何實(shí)現(xiàn)文件上傳呢?
我:我之前使用的方法是使用formData來(lái)實(shí)現(xiàn),具體的原理就是使用js創(chuàng)建一個(gè)form表單,然后將需要上傳的文件屬性寫(xiě)入表單,通過(guò)submit實(shí)現(xiàn)上傳。。。(說(shuō)的很模糊)
面:那你知道如何把一些參數(shù)寫(xiě)入formData嗎?
我:。。。忘記了
總結(jié):參考http://www.itdecent.cn/p/46e6e03a0d53
參考formData MDN
參考:阮一峰:文件上傳的漸進(jìn)式增強(qiáng)
差不多就這些。。。自己知識(shí)點(diǎn)不夠扎實(shí),革命尚未成功,同志仍需努力啊~