你的例子根本不需要防抖(debounce)和節(jié)流(throttle)。
當(dāng)你的某個操作和頻繁,但是你不希望他如此頻繁時,才使用 debounce。
你并沒有監(jiān)聽頻繁觸發(fā)的 scroll 事件,而是監(jiān)聽了只觸發(fā)一次的 click 事件,在 click 事件里面調(diào)用了 window.scroll 方法。
你這行代碼有問題:
let intervalTime = setInterval(this.scrollStep.bind(this), interval);
interval 是函數(shù)執(zhí)行的頻率,這個的值不應(yīng)該是 0 啊,設(shè)置為 1000/60 吧。
重復(fù)渲染是因為 this.state.interval 在不停的改變,其實這個值根本不是組件的狀態(tài),設(shè)置為一個類屬性更合適:this.interval = 1000/60。
想要刷新子組件的評論?很簡單,評論是由數(shù)據(jù)顯示的,如果你數(shù)據(jù)變了自然評論也會變,
這樣你就可以在子組件watch會變的數(shù)據(jù)
如果你的數(shù)據(jù)是在子組件獲取到的,那么也可以在把獲取的方法寫在computed中,只要數(shù)據(jù)源變了同樣也會獲取
是不是angular去生成圖表的時候echarts還沒有加載完,刷新可以有可能是緩存的原因,導(dǎo)致第二次加載很快,所以圖表正常顯示了
試試把echarts加載放到最前面
PC端的自動播放應(yīng)該都是比較兼容的吧;關(guān)鍵屬性就是 autoplay;
但手機端是無法做到真正意義上同PC端一樣的的自動播放video的;
最多可以加個touch的監(jiān)聽事件,整個屏幕有被觸摸的時候就開始播放;(iOS下兼容比較好,Android好像有些設(shè)備不行);
之前嘗試過很多辦法,只能做到這樣了;
有些時候還是需要需求方面進(jìn)行一些妥協(xié),做不到就是做不到,只能更換方向了;
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TEST</title>
<style>
#video{
width: 80%;
height: 80%;
margin: 10% auto;
}
</style>
</head>
<body>
<video id='video' playsinline autoplay controls muted>
<source src="http://yun.it7090.com/video/XHLaunchAd/video01.mp4">
</video>
<div id='inp'></div>
<script>
function load (){
document.addEventListener('touchstart',touch, false);
document.addEventListener('touchmove',touch, false);
document.addEventListener('touchend',touch, false);
function touch (event){
var event = event || window.event;
var oInp = document.getElementById("inp");
switch(event.type){
case "touchstart":
document.getElementById("video").play();
oInp.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";
break;
case "touchend":
oInp.innerHTML = "<br/>Touch end (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";
break;
case "touchmove":
event.preventDefault();
oInp.innerHTML = "<br/>Touch moved (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";
break;
}
}
}
window.addEventListener('load',load, false);
</script>
</body>
</html>
Vue 官方有提供SSR方案,當(dāng)然你可能是想要一個Nuxt.js?
今天剛遇到,困頓了很久。多方嘗試解決,最終參考此貼解決:jQuery DataTables插件自定義Ajax分頁實現(xiàn)(可結(jié)合參考http://alisa365.com/web/71.html)。
因為覺得“同病相憐”,專門注冊了帳號回復(fù)你,我也是夠了~
補充一下:個人覺得出現(xiàn)此問題最主要的原因在于:
1.前端分頁需要一次把所有數(shù)據(jù)都獲取到;
2.開啟服務(wù)器模式后,后端獲取的數(shù)據(jù)只有一頁。
所以,解決此問題得從這個沖突點下手
糾正說明:
原以為解決此問題的核心是在于“ajax: function (data, callback, settings) {...}...api();”,但后來在此基礎(chǔ)上嘗試允許“搜索過濾”后意識到解決此問題的關(guān)鍵在于:“returnData.recordsFiltered = result.total;”——前端的分頁段的頁碼數(shù)受“recordsFiltered”影響,所以,只要控制好“recordsFiltered”的影響,該問題便得解決
如果是在模擬器里面,下來是不穩(wěn)定的,如果是真機上,檢查一下里面是不是有scrollview,可能滾動沖突了
//注冊父組件
Vue.component('my-parent',{
props:['imgtitle','imgsrc'],
compoents:{
'child1':Child1,
'child2':Child2
},
template:'#my_parent'
});
compoents --> components
拖拽的時候做相對位置判斷啊。有很多現(xiàn)成的代碼。
一般h5 應(yīng)用打包成應(yīng)用,需要前后端分離,
如果是前后端混合開發(fā),也不是不能打包,你可以試一下百度的SiteApp
實際上就是給瀏覽器綁定一個默認(rèn)主頁,再把地址欄去掉!
函數(shù)式的思想,這里用到了 高階函數(shù)(hof) 和 柯理化,以及 js 的閉包。
cached 函數(shù)是一個標(biāo)準(zhǔn)的 hof,接收一個函數(shù),返回一個函數(shù)。不過它還做了一個小小的優(yōu)化,就是利用閉包,在當(dāng)前的函數(shù)作用域定義了一個空對象,返回的函數(shù)由于函數(shù)作用域鏈的存在,是可以訪問這個 cache 對象的,另外參數(shù) fn 同理可訪問。
柯理化體現(xiàn)在,如果這個函數(shù)是
function cached(fn, str) {
return fn(str);
}
function upper(str) {
return str.charAt(0).toUpperCase() + str.slice(1)
}
cached(upper, camelizedId)
這樣的,其實是一樣可以解決問題的。只不過我每次調(diào)用的時候,都要傳入兩個參數(shù),fn 和 str??吕砘褏?shù)變成每次只傳一個,第一個參數(shù)可以被閉包緩存,然后你以后每次調(diào)用默認(rèn)就有了第一個參數(shù)。比如這里返回了一個新的函數(shù) capitalize,你每次只需要傳入 str 就可以了,函數(shù)調(diào)用的時候比較簡潔。另外,類似形式的都可以使用,比如你有一個把末尾字符小寫的函數(shù) (str) => str.slice(0, str.length - 2) + str.charAt(str.length - 1).toLowerCase(),當(dāng)然這種情況很少。。。這個處理也是很麻煩的。所以如果你把這個小寫函數(shù)做同樣的 cached 處理,會得到一個新的函數(shù)。
其實作者最想用的還是 cache 對象,因為你會發(fā)現(xiàn)上面我的操作,完全是做無用功,傳入一個函數(shù),一個
str,執(zhí)行 fn(str),感覺多此一舉,但其實多了一個作用域可以緩存。作用是把處理過的 str 緩存到對象里,以后再傳入同樣的,就直接從對象里取,不用再調(diào)用 fn 了。
說意義的話,就是細(xì)節(jié)的優(yōu)化吧,看起來處理的更優(yōu)雅。性能提升的話,如果是大量的使用這個函數(shù),直接取緩存的意義重大。如果調(diào)用不多,多執(zhí)行幾次,現(xiàn)在 js 的性能還是沒啥問題的。
安利fp-code
自己已解決 https 證書的問題
子路由就是顯示父級component,如果父級component中有<router-view/>,將其顯示為子component.
不然這三個路由寫成平級和寫成父子沒啥區(qū)別了
那是created里的函數(shù),不管異步還是同步,都執(zhí)行完以后,再執(zhí)行mounted里的函數(shù)嗎?
不是,異步不會等待結(jié)果。
你也可以這樣
{
created: function(){
this.waitData = asyncCall();
},
mounted: function(){
this.waitData.then(function(data) { ... })
}
}請問這個問題你解決了嗎
iview實際使用的vue版本和你項目實際的vue版本不同造成的問題, 解決辦法是安裝相同版本的vue. 另外: vue-template-compiler 這個插件也安裝和vue相同版本的.
其實說到底就是JavaScript,html,css,這是最基礎(chǔ)的,框架工具天天變,就這些雷打不動,那本JavaScript高級程序設(shè)計,翻了又翻,現(xiàn)在打算直接看MDN,你會發(fā)現(xiàn)網(wǎng)上有關(guān)的JavaScript的知識全都源于這些難懂的英文規(guī)范
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jì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)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(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)師。