思路就是首先你得生成結(jié)構(gòu)化數(shù)據(jù),然后需要的時候再轉(zhuǎn)成string。
let demo = [{
date: '2018-08-08',
ranges: [
['08:00', '09:00'],
['12:00', '13:00']
]
},
{
date: '2018-08-09',
ranges: [
['08:00', '09:00'],
['12:00', '13:00']
]
}
]
demo.map(d => {
return d.date + '|' + d.ranges.map(r => r.join('-')).join('|')
}).join(',')
它只是顯示在網(wǎng)頁上是數(shù)組形式,它后臺給你測試的時候自然是傳的鏈表,自測確實不好測,對于鏈表的題來說,要自己new一個個節(jié)點拼成一個鏈表
管理系統(tǒng)的權(quán)限控制,之前做的是,根據(jù)登錄的角色權(quán)限一次獲取所有的菜單列表循環(huán)上去。
你這樣層級獲取的目的是?菜單列表數(shù)量巨大的原因?
一開始問怎么實現(xiàn)陰影,后面又問怎么取消陰影,完全看不懂你想做什么。
既然這樣就只有給你個配置文檔自己看了: http://echarts.baidu.com/opti...
附上我以前實現(xiàn)這類地圖的options參考吧:
{
geo3D: {
map: 'Sicuan',
shading: 'lambert',
realisticMaterial: {
roughness: 0.2,
metalness: 0,
},
postEffect: {
enable: true,
SSAO: {
enable: true,
radius: 2,
intensity: 1,
},
},
groundPlane: {
show: false,
},
light: {
main: {
intensity: 1,
shadow: true,
shadowQuality: 'medium',
alpha: 30,
},
ambient: {
intensity: 1,
},
},
viewControl: {
distance: 135,
minDistance: 110,
maxDistance: 180,
alpha: 50,
minAlpha: 30,
beta: 75,
},
...
}Babel的實現(xiàn)是錯的。
這是ECMA-262中 9.2.12函數(shù)聲明初始化 小節(jié)中的部分說明:
...If the function’s formal parameters do not include any defaultvalue initializers then the body declarations are instantiated in the same Environment Record as the parameters.If default value parameter initializers exist, a second Environment Record is created for the body declarations...
"...如果函數(shù)形參不含有默認參數(shù),那么函數(shù)體聲明和參數(shù)在同一個Enviroment Record中初始化。否則將為函數(shù)體聲明創(chuàng)建第二個Enviroment Record..."
這里可以簡單地將Enviroment Record看做獨立的作用域。詳細說明在這里
所以當(dāng)函數(shù)存在默認參數(shù)的時候,應(yīng)為參數(shù)創(chuàng)建一個獨立的作用域,然后在這個作用域之中再創(chuàng)建函數(shù)體的作用域,因此一個定義在全局環(huán)境的、帶有默認參數(shù)的函數(shù)聲明,在運行時共產(chǎn)生至少3個作用域,長這個樣子(這里"作用域"更準(zhǔn)確的說法是Lexical Enviroment,詞法環(huán)境):
(為什么說至少呢,因為function body內(nèi)部可能還會有其他作用域,這個不是重點)
ES Spec之所以這么規(guī)定,是因為如果默認參數(shù)引用了函數(shù)作用域外部的變量,同時函數(shù)內(nèi)部有同名的變量存在的話,那么實際所使用的變量應(yīng)該是外部的變量,而不是函數(shù)內(nèi)部的。這是符合人類的思考習(xí)慣的,你不會在一個變量定義之前就使用它。
所以如果要把含有默認參數(shù)的函數(shù)轉(zhuǎn)為ES5寫法的話,必須用另一個函數(shù)隔絕參數(shù)和函數(shù)體,以實現(xiàn)作用域的隔離。以題目的做法為例,轉(zhuǎn)化后的函數(shù)應(yīng)該長這樣:
function foo(x, y) {
if (typeof y === 'undefined') y = function () { x = 2; };
return (function() {
var x = 3;
y();
console.log(x);
}).call(this, x, y)
}
如果在Babel基礎(chǔ)上修改的話,應(yīng)該是這樣:
function foo(x) {
var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
x = 2;
};
return (function () {
var x = 3;
y();
console.log(x);
}).call(this, x, y)
}
Babel沒有這么做可能是有別的考慮,也可能是沒想到或者不愿意改,無論如何當(dāng)前的實現(xiàn)都是錯誤的。
最后放一個Chrome運行這段代碼的scope狀態(tài),可以看出是按spec實現(xiàn)的:
Local即為上面圖示中的parameters,Block就是function body
另外阮一峰說的也不全對,初始化之后作用域是不會消失的,否則運行函數(shù)y()的時候就沒辦法獲取Local里面的x了
ajax()不可以放在一個if語句中中嗎,直接寫肯定是頁面刷新就執(zhí)行啊。
后臺登錄接口實現(xiàn),最后登錄 時間 ip 信息 持久化~
你是想在 component 2 組件中,當(dāng)觸發(fā)buttonClick事件時發(fā)請求,請求未返回結(jié)果時能夠顯示loading對吧 ?
那你的buttonClick方法可以這樣簡單改下:
buttonClick = () => {
this.props.qwqw([],true)
// 異步:
setTimeout(() => {
const data = [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park',
}, {
key: '2',
name: 'Jim Green',
age: 42,
address: 'London No. 1 Lake Park',
}, {
key: '3',
name: 'Joe Black',
age: 33,
address: 'Sidney No. 1 Lake Park',
},
{
key: '4',
name: 'aaaaa',
age: 72138,
address: 'Sidney No. 1 Lake Park',
},
]
this.props.qwqw(data,false)
})
}如果你是前端開發(fā)者,勸你還是老實使用 objc,不要用 cocoapods,坑太多。
如果你是有經(jīng)驗的 iOS 開發(fā)者,可以使用 cocoapods
1.我的理解你說的意思是后臺接收到了你這個請求,但是沒有收到你data里的數(shù)據(jù),那可能是因為你的data的格式不對,用
data: JSON.stringfy({
mobile: parseInt(this.phonenum),
type: 1
})
試試
http://www.cnblogs.com/longm/...
計算白屏?xí)r間
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>白屏</title>
<script type="text/javascript">
// 不兼容performance.timing 的瀏覽器,如IE8
window.pageStartTime = Date.now();
</script>
<!-- 頁面 CSS 資源 -->
<link rel="stylesheet" href="common.css">
<link rel="stylesheet" href="page.css">
<script type="text/javascript">
// 白屏?xí)r間結(jié)束點
window.firstPaint = Date.now();
</script>
</head>
<body>
<!-- 頁面內(nèi)容 -->
</body>
</html>
因此白屏?xí)r間則可以這樣計算出:
可使用 Performance API 時
白屏?xí)r間 = firstPaint - performance.timing.navigationStart;
首屏?xí)r間
通常計算首屏的方法有
首屏模塊標(biāo)簽標(biāo)記法
統(tǒng)計首屏內(nèi)加載最慢的圖片的時間
自定義首屏內(nèi)容計算法
1、首屏模塊標(biāo)簽標(biāo)記法
首屏模塊標(biāo)簽標(biāo)記法,通常適用于首屏內(nèi)容不需要通過拉取數(shù)據(jù)才能生存以及頁面不考慮圖片等資源加載的情況。我們會在 HTML 文檔中對應(yīng)首屏內(nèi)容的標(biāo)簽結(jié)束位置,使用內(nèi)聯(lián)的 JavaScript 代碼記錄當(dāng)前時間戳。如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首屏</title>
<script type="text/javascript">
window.pageStartTime = Date.now();
</script>
<link rel="stylesheet" href="common.css">
<link rel="stylesheet" href="page.css">
</head>
<body>
<!-- 首屏可見模塊1 -->
<div class="module-1"></div>
<!-- 首屏可見模塊2 -->
<div class="module-2"></div>
<script type="text/javascript">
window.firstScreen = Date.now();
</script>
<!-- 首屏不可見模塊3 -->
<div class="module-3"></div>
<!-- 首屏不可見模塊4 -->
<div class="module-4"></div>
</body>
</html>
時首屏?xí)r間等于 firstScreen - performance.timing.navigationStart;
事實上首屏模塊標(biāo)簽標(biāo)記法 在業(yè)務(wù)中的情況比較少,大多數(shù)頁面都需要通過接口拉取數(shù)據(jù)才能完整展示,因此我們會使用 JavaScript 腳本來判斷首屏頁面內(nèi)容加載情況。
2、統(tǒng)計首屏內(nèi)圖片完成加載的時間
通常我們首屏內(nèi)容加載最慢的就是圖片資源,因此我們會把首屏內(nèi)加載最慢的圖片的時間當(dāng)做首屏的時間。
由于瀏覽器對每個頁面的 TCP 連接數(shù)有限制,使得并不是所有圖片都能立刻開始下載和顯示。因此我們在 DOM樹 構(gòu)建完成后將會去遍歷首屏內(nèi)的所有圖片標(biāo)簽,并且監(jiān)聽所有圖片標(biāo)簽 onload 事件,最終遍歷圖片標(biāo)簽的加載時間的最大值,并用這個最大值減去 navigationStart 即可獲得近似的首屏?xí)r間。
此時首屏?xí)r間等于 加載最慢的圖片的時間點 - performance.timing.navigationStart;
3、自定義模塊內(nèi)容計算法
由于統(tǒng)計首屏內(nèi)圖片完成加載的時間比較復(fù)雜。因此我們在業(yè)務(wù)中通常會通過自定義模塊內(nèi)容,來簡化計算首屏?xí)r間。如下面的做法:
忽略圖片等資源加載情況,只考慮頁面主要 DOM
只考慮首屏的主要模塊,而不是嚴格意義首屏線以上的所有內(nèi)容
你可以了解一下require和import對吧。這兩個方法的用法。
你也可以去看看utils文件里面的顯示,導(dǎo)出了一些方法。這些方法是你能用的。
console.log($)也可以看看里面都有什么方法
你搜的是 Pointer events 和 css 的 'pointer-events' 是兩回事. caniuse 在 Pointer events 還強調(diào)了不要和 css 的pointer-events 搞混.
<div class="row">
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
</div>
<style>
.row {
width: 300px;
display: flex;
flex-wrap: wrap;
align-content: flex-start;
}
.col{
flex: 0 0 33.333333%;
height: 80px;
box-sizing: border-box;
border: 1px solid #dcdfe6;
}
</style>-webkit-appearance: none
watch: {
'obj.attr1': { //'對象.要監(jiān)聽的屬性名'
immediate: true,
handler(val) {
}
}
},select要用v-model
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。