canvas、語(yǔ)義化、webSocket、多媒體標(biāo)簽、本地存儲(chǔ),常用的就這些了。
html5的話,還有webRTC、webVTT以及一些新的api,具體可以參考下MDN里面的介紹:
https://developer.mozilla.org...
var p1=new Promise((resolve,rej) => {
console.log('沒(méi)有resolve')
//throw new Error('手動(dòng)返回錯(cuò)誤')
rej('失敗了')
})
p1.then(data =>{
console.log('data::',data);
},err=> {
console.log('err::',err)
}).catch(
res => {
console.log('catch data::', res)
})
VM367054:2 沒(méi)有resolve
VM367054:11 err:: 失敗了
var p1=new Promise((resolve,rej) => {
console.log('沒(méi)有resolve')
//throw new Error('手動(dòng)返回錯(cuò)誤')
rej('失敗了')
})
p1.then(data =>{
console.log('data::',data);
}).catch(
res => {
console.log('catch data::', res)
})
VM367054:2 沒(méi)有resolve
VM367054:11 catch data:: 失敗了
var p1=new Promise((resolve,rej) => {
console.log('沒(méi)有 resolve')
//throw new Error('手動(dòng)返回錯(cuò)誤')
rej('失敗了')
})
p1.catch(
res => {
console.log('catch data::', res)
})
VM367087:2 沒(méi)有resolve
VM367087:9 catch data:: 失敗了
var p1=new Promise((resolve,rej) => {
console.log('resolve')
//throw new Error('手動(dòng)返回錯(cuò)誤')
resolve('成功了')
})
p1.then(data =>{
console.log('data::',data);
}).catch(
res => {
console.log('catch data::', res)
})
VM367087:2 resolve
VM367087:9 data:: 成功了
var p1=new Promise((resolve,rej) => {
console.log('resolve')
//throw new Error('手動(dòng)返回錯(cuò)誤')
resolve('成功了')
})
p1.catch(
res => {
console.log('catch data::', res)
})
VM367087:2 resolve
throw new Error 的情況和rej一樣,但是他倆只會(huì)有一個(gè)發(fā)生
另外,網(wǎng)絡(luò)異常(比如斷網(wǎng)),會(huì)直接進(jìn)入catch而不會(huì)進(jìn)入then的第二個(gè)回調(diào)
可以試下input或者change事件
為了平衡編譯時(shí)間和運(yùn)行效率。事實(shí)上經(jīng)過(guò)一段時(shí)間后,JVM會(huì)把熱點(diǎn)代碼編譯成機(jī)器碼。詳情可以看看極客時(shí)間《深入拆解Java虛擬機(jī)》第1講“Java代碼是怎么運(yùn)行的”。作者是Oracle GraalVM虛擬機(jī)開(kāi)發(fā)者,Oracle高級(jí)研究員,計(jì)算機(jī)博士。
出現(xiàn)瀏覽器崩潰的原因是,你瀏覽器占用的內(nèi)存爆倉(cāng)了。你的reader.onloadend方法把base64的數(shù)據(jù)都存起來(lái)了,這里是存到內(nèi)存當(dāng)中,當(dāng)數(shù)據(jù)量很大的情況下,就會(huì)出現(xiàn)內(nèi)存爆倉(cāng),瀏覽器沒(méi)有額外的內(nèi)存去正常運(yùn)行了。
你需要限制一下上傳文件的大小,當(dāng)文件過(guò)大的情況下,推薦采用 分片上傳技術(shù),使用類似于js-spark-md5前端js類庫(kù)。參考html5大文件上傳技術(shù)
你所說(shuō)的卡住,具體指的是什么?
變換一下數(shù)據(jù)結(jié)構(gòu)
let a = [
[
{ "11": "" },
{ "1": "" },
{ "2": "" },
]
]
let b={
"11":"",
"1":"",
"2":"",
}
for(let i in a){
for(let j in a[i]){
console.log(a[i][j])
}
}
/*
{ '11': '' }
{ '1': '' }
{ '2': '' }
*/
for(let k in b){
console.log(k+":"+b[k])
}
/*
1:
2:
11:
*/
每個(gè)數(shù)組元素值盡量相等
這個(gè)可以表述為 “使得標(biāo)準(zhǔn)差最小”,即
給出兩個(gè)數(shù) m, 及 n,求一個(gè)標(biāo)準(zhǔn)差最小的數(shù)組 array,并滿足len(array) == m
,且sum(array) == n
。
只要找出該數(shù)組,再隨機(jī)打亂元素順序便可。
我覺(jué)得很多同學(xué)都答出來(lái)了,本人傾向 @papersnake 的一個(gè)答案
function foo(m,n){
var i = parseInt(m/n)
var j = m % n
console.log(j)
var arr = new Array(n).fill(i)
for(var d=0;d<j;d++){
arr[d]=arr[d]+1
}
return arr
}
var d= foo(11,3)
console.log(d)
當(dāng)然,他這里沒(méi)有做隨機(jī)操作。
所有的選中控制操作都不要自己控制,全部交給props,每次選中都是通過(guò)事件上傳狀態(tài),自頂向下賦值
你應(yīng)該修改這個(gè)配置項(xiàng);
chunkFilename: "xxx.css"
1、關(guān)于type.js,確實(shí)只是一個(gè)規(guī)范化的管理方式,把所有的mutations的操作,都定義在type.js里面。
2、存儲(chǔ)方式,目前項(xiàng)目中使用了vuex-persistedstate 這個(gè)插件。默認(rèn)使用的是localStorage。當(dāng)然你可以選擇SessionSorage以及cookie。這些選擇都是基于你了解了他們之間的區(qū)別,以及根據(jù)項(xiàng)目需求來(lái)選擇的。沒(méi)有最好,只有最合適把
不知道你是否需要的是這個(gè)效果。
css 代碼如下,就是在你的基礎(chǔ)上增加了點(diǎn)熟悉 和修改名稱
<style type="text/css">
ul {
list-style: none;
width: 100%;
}
.li-item {
width: 23%;
text-align: center;
height: 255px;
float: left;
display: inline-block;
border-radius: 5px;
border: 1px #ccc solid;
cursor: pointer;
}
.content {
width: 1140px;
position: relative;
}
</style>
html 代碼如下
<div class="content">
<ul>
<li class="li-item">
<img src="img/lanmeifengmi001.jpg" />
<p>這是一個(gè)商品</p>
</li>
<li class="li-item">
<img src="img/lanmeifengmi001.jpg" />
<p>這是一個(gè)商品</p>
</li>
<li class="li-item">
<img src="img/lanmeifengmi001.jpg" />
<p>這是一個(gè)商品</p>
</li>
<li class="li-item">
<img src="img/lanmeifengmi001.jpg" />
<p>這是一個(gè)商品</p>
</li>
<li class="li-item">
<img src="img/lanmeifengmi001.jpg" />
<p>這是一個(gè)商品</p>
</li>
<li class="li-item">
<img src="img/lanmeifengmi001.jpg" />
<p>這是一個(gè)商品</p>
</li>
<li class="li-item">
<img src="img/lanmeifengmi001.jpg" />
<p>這是一個(gè)商品</p>
</li>
</ul>
</div>
希望能幫助你
下載下來(lái)是什么要看你的href屬性里面寫(xiě)的是什么了。你寫(xiě)一個(gè)文件他就下載那個(gè)文件
constructor里面不適合進(jìn)行網(wǎng)絡(luò)請(qǐng)求,可以在 componentWillMount里面
給 this.props.children 處理下呢const children = arrayify(this.props.children)
不能,你自己換個(gè)賬戶試試就知道了。
const data = [
{ name: '管理員', code: 'admin' },
{ name: '用戶', code: 'user' },
{ name: '超管', code: 'super' }
]
const names = ['管理員', '用戶']
let codes = []
data.forEach(dataItem => {
const { name, code } = dataItem
if (names.indexOf(name) !== -1) {
codes.push(code)
}
})
console.log(codes)
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。