移動web app開發必備
阿新 • • 發佈:2018-12-30
/** * 初始化操作 * @return */ proto.initProcess = function(){ var self = this, prev = null , curr = null , next = null ; debug.group("start of init process"); var idx = self.chapterIndex; debug.info("PageBase: 執行初始化之前的操作!"); self.initProcessBefore(); if(idx == 0){ debug.info("PageBase: 初始化入口點從第一章開始進入"); debug.info("PageBase: 解析器解析第一章資料!"); curr = self.process(self.chapters[idx]); curr.then(function(pages){ debug.info(self.format("PageBase: 第一章資料解析完成,解析頁面數為{0}" , pages.length)); self.cPages = pages; if(self.isChangeFont){ self.idx = Math.ceil((pages.length - 1) * self.idx); } self.cPages.idx = idx; ///////////////////////////////////////////////// // // 2013.1.10修改 // 如果只有一個章節的情況下 // if(1 === self.chapters.length){ deferred.all([curr]).then(self.steup.bind(self)); }else{ debug.info("PageBase:解析器解析後一章資料!"); next = self.loadNextData(idx + 1); next.then(function(args){ debug.info(self.format("PageBase: 後一章資料解析完成,解析頁面數為{0}" , args.pages.length)); self.nPages = args.pages; self.nPages.idx = idx + args.index; debug.info(self.format("PageBase: 初始化資料解析完成, 當章索引{0} 當章頁數{1} 下章索引{2} 下章頁數{3}" , self.cPages.idx , self.cPages.length , self.nPages.idx , self.nPages.length)); debug.info("PageBase: 初始化資料解析完成,即將生成結構操作!"); }); deferred.all([curr , next]).then(self.steup.bind(self)); } }); }else if(idx == self.chapters.length -1){ debug.info("PageBase: 初始化入口點從最後一章開始進入"); debug.info("PageBase:解析器解析最後一章資料!"); prev = self.loadPrevData(idx - 1); prev.then(function(args){ self.pPages = args.pages; self.pPages.idx = args.index + 1; debug.info(self.format("PageBase: 最後一章的前一章資料解析完成,解析頁面數為{0}" , args.pages.length)); curr = self.process(self.chapters[idx]); curr.then(function(pages , data){ if(self.isChangeFont){ self.idx = Math.ceil((pages.length - 1) * self.idx); } self.cPages = pages ; self.cPages.idx = idx; debug.info(self.format("PageBase: 最後一章資料解析完成,解析頁面數為{0}" , pages.length)); debug.info(self.format("PageBase: 初始化資料解析完成, 前章索引{0} 前章頁數{1} 當章索引{2} 當章頁數{3} " , self.pPages.idx , self.pPages.length , self.cPages.idx , self.cPages.length )); debug.info("PageBase: 初始化資料解析完成,即將生成結構操作!"); }); deferred.all([prev , curr]).then(self.steup.bind(self)); }); }else{ debug.info("PageBase: 初始化入口點從中間章開始進入"); prev = self.loadPrevData(idx - 1); debug.info("PageBase:解析器解析中間章的前一章資料!"); prev.then(function(args){ self.pPages = args.pages ; self.pPages.idx = args.index; debug.info(self.format("PageBase: 中間章前一章資料解析完成,解析頁面數為{0}" , args.pages.length)); debug.info("PageBase:解析器解析中間章資料!"); curr = self.process(self.chapters[idx]); curr.then(function(pages , data){ if(self.isChangeFont){ self.idx = Math.ceil((pages.length) * self.idx); // console.log("spages.length - 1",pages.length) // console.log("self.idx",self.idx) } self.cPages = pages ; self.cPages.idx = idx; debug.info(self.format("PageBase: 中間章資料解析完成,解析頁面數為{0}" ,pages.length)); debug.info("PageBase:解析器解析中間章的後一章資料!"); next = self.loadNextData(idx + 1); next.then(function(args){ self.nPages = args.pages ; self.nPages.idx = idx + args.index; debug.info(self.format("PageBase: 中間章後一章資料解析完成,解析頁面數為{0}" , args.pages.length)); debug.info(self.format("PageBase: 初始化資料解析完成, 前章索引{0} 前章頁數{1} 當章索引{2} 當章頁數{3} 下章索引{4} 下章頁數{5}" , self.pPages.idx , self.pPages.length , self.cPages.idx , self.cPages.length , self.nPages.idx , self.nPages.length)); debug.info("PageBase: 初始化資料解析完成,即將生成結構操作!") }); deferred.all([prev , curr , next]).then(self.steup.bind(self)); }); }); }