// 草根关于css3 和 H5 的博客 :
1.HTML5新特性之Mutation Observer:
Mutation Observer(变动观察器)是监视DOM变动的接口。当DOM对象树发生任何变动时,Mutation Observer会得到通知。要概念上,它很接近事件。可以理解为,当DOM发生变动会
触发Mutation Observer事件。但是,它与事件有一个本质不同:事件是同步触发,也就是说DOM发生变动立刻会触发相应的事件;Mutation Observer则是异步触发,DOM发生变动以后,
并不会马上触发,而是要等到当前所有DOM操作都结束后才触发。这样设计是为了应付DOM变动频繁的情况。举例来说,如果在文档中连续插入1000个段落(p元素),会连续触发1000个
插入事件,执行每个事件的回调函数,这很可能造成浏览器的卡顿;而Mutation Observer完全不同,只在1000个段落都插入结束后才会触发,而且只触发一次。(对比最后的)
2、使用方法
首先,使用MutationObserver构造函数,新建一个实例,同时指定这个实例的回调函数。
var observer = new MutationObserver(callback);
2.1 observer方法
observer方法指定所要观察的DOM元素,以及要观察的特定变动。
var article = document.querySelector('article');
var options = {
'childList': true,
'arrtibutes': true
};
observer.observer(article, options);
上面代码首先指定,所要观察的DOM元素提article,然后指定所要观察的变动是子元素的变动和属性变动。最后,将这两个限定条件作为参数,传入observer对象的observer方法。
http://image.data.cma.cn/vis/NAFP_CLDAS2.0_RT_JPG_SM000005/2017/11/24/Z_NAFP_C_BABJ_20171124031234_P_CLDAS_RT_CHN_0P0625_HOR-SM000005-2017112400.jpg
function getImg( ){
var obj = {};
day = 20171112;
obj[day] = [];
obj[day][0]=imageGroup[shijianArIndex][keynumFcst].fileURL;
for(let i=1;i<24;i++){
$(".easyui-linkbutton.l-btn:nth-of-type(4)").trigger("click");
alert($(".easyui-linkbutton.l-btn:nth-of-type(4)").html());
console.log(obj[day].indexOf( imageGroup[shijianArIndex][keynumFcst].fileURL));
if(obj[day].indexOf( imageGroup[shijianArIndex][keynumFcst].fileURL )==-1){
obj[day][i]=imageGroup[shijianArIndex][keynumFcst].fileURL;
}
//else{
//i = i-1
//}
//console.log(i);
}
console.log(obj);
}
getImg()
面试流程:http://gitbook.cn/books/5a1a6a3681169d0ec5499658/index.html
1.HTML5新特性之Mutation Observer:
Mutation Observer(变动观察器)是监视DOM变动的接口。当DOM对象树发生任何变动时,Mutation Observer会得到通知。要概念上,它很接近事件。可以理解为,当DOM发生变动会
触发Mutation Observer事件。但是,它与事件有一个本质不同:事件是同步触发,也就是说DOM发生变动立刻会触发相应的事件;Mutation Observer则是异步触发,DOM发生变动以后,
并不会马上触发,而是要等到当前所有DOM操作都结束后才触发。这样设计是为了应付DOM变动频繁的情况。举例来说,如果在文档中连续插入1000个段落(p元素),会连续触发1000个
插入事件,执行每个事件的回调函数,这很可能造成浏览器的卡顿;而Mutation Observer完全不同,只在1000个段落都插入结束后才会触发,而且只触发一次。(对比最后的)
2、使用方法
首先,使用MutationObserver构造函数,新建一个实例,同时指定这个实例的回调函数。
var observer = new MutationObserver(callback);
2.1 observer方法
observer方法指定所要观察的DOM元素,以及要观察的特定变动。
var article = document.querySelector('article');
var options = {
'childList': true,
'arrtibutes': true
};
observer.observer(article, options);
上面代码首先指定,所要观察的DOM元素提article,然后指定所要观察的变动是子元素的变动和属性变动。最后,将这两个限定条件作为参数,传入observer对象的observer方法。
http://image.data.cma.cn/vis/NAFP_CLDAS2.0_RT_JPG_SM000005/2017/11/24/Z_NAFP_C_BABJ_20171124031234_P_CLDAS_RT_CHN_0P0625_HOR-SM000005-2017112400.jpg
function getImg( ){
var obj = {};
day = 20171112;
obj[day] = [];
obj[day][0]=imageGroup[shijianArIndex][keynumFcst].fileURL;
for(let i=1;i<24;i++){
$(".easyui-linkbutton.l-btn:nth-of-type(4)").trigger("click");
alert($(".easyui-linkbutton.l-btn:nth-of-type(4)").html());
console.log(obj[day].indexOf( imageGroup[shijianArIndex][keynumFcst].fileURL));
if(obj[day].indexOf( imageGroup[shijianArIndex][keynumFcst].fileURL )==-1){
obj[day][i]=imageGroup[shijianArIndex][keynumFcst].fileURL;
}
//else{
//i = i-1
//}
//console.log(i);
}
console.log(obj);
}
getImg()
面试流程:http://gitbook.cn/books/5a1a6a3681169d0ec5499658/index.html