第一組:姚成棟 圖表

其實我們的模板中是有圖表的,有折線圖、柱狀圖和餅圖等等。
如第六張的折線圖代碼如下
<div ui-jq="plot" ui-options="
[
{ data: {{d0_1}}, label: 'A', points: { show: true }, lines: { show: true, fill: true, fillColor: { colors: [{ opacity: 0.1 }, { opacity: 0.1}] } } },
{ data: {{d0_2}}, label: 'B', points: { show: true, radius: 4 } }
],
{
colors: [ '{{app.color.info}}','{{app.color.warning}}' ],
series: { shadowSize: 2 },
xaxis:{ font: { color: '#ccc' } },
yaxis:{ font: { color: '#ccc' } },
grid: { hoverable: true, clickable: true, borderWidth: 0, color: '#ccc' },
tooltip: true,
tooltipOpts: { content: '%s of %x.1 is %y.4', defaultTheme: false, shifts: { x: 0, y: 20 } }
}
" style="height:240px"></div>
</div>
其中數(shù)據(jù)如下:

如果想要改成柱狀圖只需在上面的html代碼fillColor屬性中加入:
bars: { show: true, barWidth: 0.6, fillColor: { colors: [{ opacity: 0.5 }, { opacity: 0.9}] } }
第二組:徐晉 Vue:v-if與v-show比較
1. 共同點
都是動態(tài)顯示DOM元素
2. 區(qū)別
(1)手段:v-if是動態(tài)的向DOM樹內(nèi)添加或者刪除DOM元素;v-show是通過設置DOM元素的display樣式屬性控制顯隱;
(2)編譯過程:v-if切換有一個局部編譯/卸載的過程,切換過程中合適地銷毀和重建內(nèi)部的事件監(jiān)聽和子組件;v-show只是簡單的基于css切換;
(3)編譯條件:v-if是惰性的,如果初始條件為假,則什么也不做;只有在條件第一次變?yōu)檎鏁r才開始局部編譯(編譯被緩存?編譯被緩存后,然后再切換的時候進行局部卸載); v-show是在任何條件下(首次條件是否為真)都被編譯,然后被緩存,而且DOM元素保留;
(4)性能消耗:v-if有更高的切換消耗;v-show有更高的初始渲染消耗;
(5)使用場景:v-if適合運營條件不大可能改變;v-show適合頻繁切換。
Tips:(1)如果v-show作用的元素,css文件中display:none,通過v-show進行設置不能顯示該元素;
原因:v-show控制顯隱,是通過js代碼去修改元素的element style,如果value為false,設置display: none;如果value為true,設置display: '';于是value為true時,只能將element style中的display效果清除,并不能覆蓋css中的display效果;
如下圖所示,value=true時,v-show改變的是element.style,由于無效,顯示效果由css文件中的display決定。

解決辦法:使用v-show的話,在vue解析之前隱藏DOM的話,盡量在style屬性里面設置display的值,不要在css文件中。
<ul v-touch:tap="message=2" style="display: none" v-show="show">
第三組:蔡永堅 Asp.Net底層解析-生命周期綜合分析
經(jīng)過對ASP.NET的生命周期的較詳細了解后,不得不承認,微軟在ASP.NET上的設計是非常精妙的,從ASPX頁面源代碼經(jīng)過頁面周期、各個服務器控件的生命周期,最終轉(zhuǎn)化為html代碼。這些生命周期的各個階段功能相對獨立、明確,ASP.NET開發(fā)者可以通過在特定階段添加相關代碼,以達到特定的目的。下面將頁面生命周期與服務器控件生命周期在一張圖上(從MSDN中復制)綜合展示:

從上面的示圖可以教完整地反映整個頁面生命周期(控件的生命周期包含在頁面周期之中)的執(zhí)行流程,調(diào)用某些方法之后觸發(fā)對應的生命周期事件,標志開始進入下一個生命周期階段。
第四組:張元一 iOS定時器
EFB項目中,需要實現(xiàn)后臺持續(xù)監(jiān)控電量的功能,這可以拆分為三個需求:
- 程序需要保持在后臺可以運行。
- 程序需要獲取ipad精確電量。
- 需要每隔一段時間掃描一次電量,以獲取當前有效的電量。
之前文章實現(xiàn)了需求一、二,本文先討論需求三的實現(xiàn):
創(chuàng)建一個NSTimer變量,每隔25s,執(zhí)行一次getbatterylevel函數(shù),
-(NSTimer *)timer{
if (!_timer) {
_timer = [NSTimer scheduledTimerWithTimeInterval:25.0 target:self selector:@selector(getbatterylevel) userInfo:nil repeats:YES];
}
return _timer;
}
在程序進入后臺時,啟動Timer:
#pragma mark - 程序進入后臺
- (void)applicationDidEnterBackground:(UIApplication *)application {
//開啟定時器 不斷向系統(tǒng)請求后臺任務執(zhí)行的時間
[self.timer fire];
}
獲取電量并存儲在變量中
-(void)getbatterylevel {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate *datenow = [NSDate date];
NSString *nowtimeStr = [formatter stringFromDate:datenow];
NSString *str = self.textViewString;
self.textViewString = [NSString stringWithFormat:@"%@ level is: %.f%% \n%@ ",nowtimeStr,[UIDevice currentDevice].batteryLevel*100,str];
NSLog(@" self.textViewString %@",self.textViewString);
self.myVC.batteryLevellb.text = [NSString stringWithFormat:@"CurrentBatteryLevel:%.f%%",[UIDevice currentDevice].batteryLevel*100];
self.myVC.textview.text = self.textViewString;
}
本項目demo的GitHub地址:
https://github.com/Frued/BatteryLevel
第五組:陳孚楠 javascript使用的兩項原則(接上文)
Hijax,即漸進增強的Ajax,也被稱為“簡化的Ajax”,也是hijack(劫持)的意思,也可直接理解成保存和操縱歷史的Ajax,Hijax是由Jeremy Keith(杰里米基斯)提出來的。
DOM Scripting: Hijax
主要原理:
傳統(tǒng)Web的表單提交和鏈接方式都會重新刷新加載整個頁面,這樣會造成內(nèi)容和資源的重復加載,對服務器造成壓力和浪費。
Hijax的原理是“劫持”表單提交和URL鏈接,然后通過Ajax獲取數(shù)據(jù)后局部更新DOM及內(nèi)容,從而減少帶寬消耗和服務器壓力,避免頁面刷新帶來的閃爍感和重復感,改善用戶瀏覽體驗。如果客戶端不支持JS或XMLHttpRequest,則表單和鏈接會按傳統(tǒng)方式提交和跳轉(zhuǎn)。
HTML5的History API能更好的實現(xiàn)這樣的功能,且更新URL地址時頁面不刷新,支持瀏覽器后退和前進按鈕,這個時候你也可以直接理解成History+Ajax。
5.5 Session history and navigation
Manipulating the browser history
優(yōu)點:
1、改善用戶瀏覽體驗,避免頁面刷新帶來的閃爍感和重復感;
2、減少服務器壓力和帶寬浪費。
缺點:
似乎只有一點,對搜索引擎不友好,不過Google的爬蟲會索引這樣的URL格式,即由一個由井號和嘆號構成的URL字符串(#!),稱為Shebang(也稱為Hashbang),我們在Shell和Python會經(jīng)??吹竭@樣的字符串,通過程序解析字符串并加載相應的模塊或內(nèi)容。不過HTML5的History API不需要這樣的URL格式,直接使用傳統(tǒng)URL格式就可以了。基于HTML5的History API的Hijax是更好的Hijax。
個人理解:
當瀏覽器支持ajax 時 ,只需要將相應參數(shù)傳遞給要更新的模塊頁面,得到該模塊產(chǎn)生的html,由javascript 的 innerHTML 局部刷新該模塊所在區(qū)域。
當瀏覽器不支持ajax時,則相應參數(shù)傳遞給整個頁面刷新,相應模塊讀取參數(shù)更新。