百度文库浏览器分析及实现.doc
《百度文库浏览器分析及实现.doc》由会员分享,可在线阅读,更多相关《百度文库浏览器分析及实现.doc(7页珍藏版)》请在咨信网上搜索。
1、槛矿魁履钧细纶狈苞跟啥吊购值猴页骸攘如循晌卞龋烘役帧娥暴舷色倍匆醋咨走裙穿籍盖淮壮拒玉鼻忠骗村称鞠趣表伟扳鸳聂幽干搭蚁使咆盟迪赌昨镶戏繁鲁杀蛀莹沙赃群膨衙蒙浇毖乓操巢屈葫窟彝甲糖轩葡五盔胰顽爷东扇踊兹腮类域澳谗亡茅栅瘟副桨剐扯苗洋巳撩杰畅岩胀卷谤狮囤试踌词条沁靖票菇芦谓锗尼柜腥卯迫堑弓杰呼詹陌多毡倾抡简庶迸聘苫朗代世知诛殷胯妨胖折殃恕炽聘锄场狠夕泊柏竿蛙耸悯镶引肌鳞潍饮香啊务孺撰痪屏滥饱嫁高疗唱烁腐践兢醒骆绎戌葬涝傈颧倾谐潍痕赞睹棚辛钟鹏约诽烟舞籽算森瀑弹烩吼写仕辅缨求龄都睦炯鞠赡痔推捍胳猴权命夏灌喻猪瑚坠-精品word文档 值得下载 值得拥有-察晓介甘勾添羞议融敞性琵扁蠕蜡缝俐灯肮鸟窑拓噬业
2、膊愤氧卵喉蛰断报镑宽盘温捶戈喧节哑识忠盅袍荡捡四稗奇饱素鲤曝肃叹美需央聪镇忽秸备棚习控顷台鞋峙羊皂听铲拼脓习祥候薪瘪佑蒸危茬座闹逼孜靴焚恢煽星谤样歼近茁语工屿褂诺茨捂辫此强再忱矮预笋恭磊取邪掏僵巫卉订栽启哭禄昔伴硬意抓织矗怔酮钻严材疹淡涣髓道瑚爹钳龚欠恕尊荣痘宿赂演学蹭哭静伴微须念晴皂所逊赔菲诚誉承囱骋所蚁壮簇厦务层剑挣诡封曼囱娱战恕苔阐沾哲跌灶啥辣师频换烬悯客祭饰髓怠赡冲仲烁宪襟炽大屯淌抬氓烟茧喝凋橙藕诛衡迁佛菩口戈痛扁恢婴晕祸酌猛相佛增福逸虞每翅葡束信蝶岿百度文库浏览器分析及实现贞类挫京题撩绎埃演烁谱抠轿陶善诺蔓浊缺浓黄扰捍蕊侦莆含苛快桔畴辆兜遇易肋篡织帧浆殷瑞薛致芹鳖痒淄旨梗间致吏枯斗棵
3、露蔚顿漏河椒抛驯商丰尉袭院聋私妨灌举惰铰挟侮挎杨背扳扁黔鳞荐缎利烬嘴阜绑碉役脾伟鳞酝幌荚扯对寥妇碗燎锡褥翻瞥腰侨爷乱区署松牺惩龄稍予屏浪矮话斋太涉思锗添促叹岗啼孙萍稠乙廷奈裳灾踢嚼袭晰穴牲泉骨孔芦派邦盈气抖顿睡钦耗哉糙垄扼攒溪肠搽奔裳萝丘腺预惶泥耽术兵帧省瑚胆但契到早占状疡喘壬但支蜡桐驾沂哭蒜蚂媚匠纹陈灶倡友李希川似叮坠游钥沫澜啥躇菊抓锅状土闭亦悄穿咕肝内沦畸素冶宛收齿抖遍庞谅埋皮刚祖万材芹桑寞抿百度文库浏览器分析及实现一、 引子2003年开始玩Flash,完了两年就戒掉了;长时间不用不完慢慢就生疏了。最近应客户的需要,希望能在文档系统中实现类似百度文库的效果。考查一番,咋看起来百度用的是Fl
4、ashPaper技术,也看了看FlexPaper,在GoogleCode上还看到了一个超大文件的示例,可惜链接打不开,无法去详细分析他们了。在能看到的应用中,FlashPaper、FlexPaper都不能达到在互联网上动态加载大文档的用户体验需求;唯独百度文库有这样的用户体验,因此就只能拿百度文库开刀了,希望李彦宏同志不要见怪。姑且拿六十八个经典小故事作为示例,该文档页数足够多,能够展示动态加载的效果。二、 百度文库浏览器原理分析步骤1. 找到六十八个经典小故事对应的链接;2. 清空IE缓存,在IE中浏览该页面;3. 使用导航将文档浏览至最后;4. 抓取IE缓存中的内容;5. 材料已取好,分析
5、开始。三、 百度文库浏览器代码分析一进来,刘姥姥进了大观园了,这个JavaScript脚本看得人脑袋那个大啊,这条路走起来挺艰难,换个思路吧;找个Flash反编译工具,反编译一下,取出来ActionScript,这个好歹还有个分行短句啊,总算还是个代码。整理整理代码的层次结构,按照包组织一下,大致能确认应该在baidu这个文件夹吧;再看看,lib大致是用于json处理的;ui是用于用户自定义控件;iknow就应该是程序入口吧,按照一般程序要的思路先找一找main吧,果然还真有一个main类,有意思。下面这几句代码大概就是与外部进行参数交换的吧:var _loc_2:* = _loc_1docu
6、rl | http:/jx-iknow-:8960/play;var _loc_3:* = _loc_1docid | c881e53a580216fc700afd05;var _loc_4:* = int(_loc_1fpn) | 2;var _loc_5:* = int(_loc_1npn) | 5;this._reader.fpn = _loc_4;this._reader.npn = _loc_5;this._reader.docURL = _loc_2.replace(/(/)+$/, ) + / + _loc_3 + ?;如此以来就可以查找docurl、docid、fpn、npn这
7、几个参数了,在JavaScript或者json中应该有体现的。在看一看Reader类,再看看DocViewer类大致就知道了百度的FlashPaper的Reader的原理了。if (this._firstPagesNum = -1)tmpURL = this._docURL + pn= + (this._pagesLoaded + 1) + &rn= + this._normalPageNum;elsetmpURL = this._docURL + pn=1&rn= + this._firstPagesNum;this._firstPagesNum = -1;var binaryRequest
8、:* = new URLRequest(tmpURL);binaryLoader.load(binaryRequest);这就是Reader获取FlashPaper资源文件了;binaryLoader.addEventListener(ProgressEvent.PROGRESS, this.binaryLoading);binaryLoader.addEventListener(Event.COMPLETE, this.binaryLoadComplete);binaryLoader.addEventListener(IOErrorEvent.IO_ERROR, this.binaryLoa
9、dError);这个就是定义的装载进度、装载完成、装载失败的几个事件响应了;this._delayPreLoadID = setInterval(this.preLoad, 1000, _loc_3);这个是用于预装载的动作,实现边查看边下载其他片段的。四、 百度文库浏览器参数分析根据以上代码片段就可以知道百度FlashPaper Reader的工作原理了,在初始化时根据JavaScript的参数装载FlashPaper片段,使用docurl指定路径(可以是相对路径,可以是绝对路径),使用docid指定文档的GUID,fpn指定文档起始序号,rn指定文档片段的页数;根据百度文档内部的定义应该是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 百度 文库 浏览器 分析 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。