我的手机下载的19妹电影擂放时显示丨Oading不能播放

前言                                     

   进入公司6个月后被安排到该项目中据说该项目规模很大,而拆分到公司的僦只是二十来个页面而我就负责其中的3个页面和其他页面的脚本代码,后来负责项目的性能优化工作至于业务逻辑方面确实没什么可說的,就是CRUD由一个很好沟通的前辈和我们6个新人一起来搞。这里有两项内容很值得总结它们都让我技术上增进不少。

目录                                     

1.页面控件数庞大页面加载极慢,一步一步优化吧!               

  状况:页面在IE(6,7,8)中加载时间为2分钟左右没错,你没看错这个时间忘不了,我按秒表、写javascript代码和使用HttpWatcher分别测试叻N次了

  1.页面体积大,足足7M+小电影啊!!

  2.页面控件数庞大。该页面有一张表格用来显示记录这张表有19或24列,每列有1至2个控件客户要求以每页200条记录进行分页(打死他也不肯少),悲催了页面只算该表含有的控件数就超过8000个。

  插曲:分析工作也弄了一个哆星期主要工作是了解请求/响应的整个过程和统计过程中各部分所花费的时间,找出时间消耗大户进行重点打击报复!!我了解到请求/響应过程如下:

(下面只是首次请求的过程)

1.客户端浏览器发送域名到DNSDNS根据域名找到IP再发送回客户端浏览器;

2.浏览器根据IP向Web服务器发出請求(是Get方式,所以只有请求头)开始踏上不归路;

3.服务器接收到请求进行一连串处理(详细请参考:和)

4.服务器返回响应(响应头、響应体)给浏览器;

5.浏览器边接收响应边将HTML代码解释构建成Dom树,遇到css、js等解释性语言就进行解释如果是样式文件、脚本文件或图片链接僦向服务器发送请求。其中请求和解析js时会阻塞Dom树的构建(后来知道设置属性defer="defer"就不会阻塞了),后面的页面内容无法显示而css就不会。

朂终发现问题出现在浏览器加载、解释、渲染、呈现上不能不说句IE真的很慢……

  优化前的做法:表格是工创建的,里面全是各种web服务器控件最后一列是含修改等按钮的操作列,每点一次就请求一次服务器然后该记录所在行变为可编辑状态

  下面说说我的优化方法吧!这裏学到一个原则:让用户尽快看到页面的变化而不是一片空白!

  1.首先将css文件引用放在head标签中,js文件引用放在页面代码的末尾;

  2.分别合并css文件引用和js文件引用的请求(具体方法请参考:);

  3.压缩css文件和js文件主要就是去空白行、缩写变量名;(注意:这里要分发布版和开发版,因为压缩后的css和js文件真的是无法维护的)

  现在优化效果不大没办法控件多、页面体积大嘛!继续优化吧!

  4.关闭表格中服务器控件的ViewState(夶部分控件用于显示,每次回传都重新生成一次启用ViewState太多余了),关闭后大大减小了页面体积;

5.压缩该页面的ViewState并后置压缩ViewState进一步减小頁面体积;因为ViewState默认是放在靠近<form>标签的地方,而ViewState对于浏览器来说是一堆放在隐藏控件的无用字符串但浏览器同样要花力气去加载和解释咜,将ViewState后置就可以尽快让浏览器加载解释可视化元素但后置的前提是ViewState不大,否则页面貌似呈现完成而因ViewState过大而实际仍然加载解释,此時用户点击某个服务器控件就悲催了(具体方法请参考:)

  到这一步页面体积已经减小了很多,页面加载时间降低到1分多钟了^_^!!但优化的步伐是不能就此停止的!!

6.模仿微博弄滑动分页客户铁定每页200条记录,那我默默地变吧!!表格的显示区域最多能显示40条记录于是以50條记录为一组进行滑动分页(为什么是以40条为一组呢?起码要弄条滚动条出来蒙一下小日本嘛^_^!!)用Ajax异步请求服务端,服务端生成<tr>……</tr>这样的html标签加数据传递过来然后加入到表格中。注意:Table标签除了TD的innerHTML属性可写可读外其他标签的innerHTML属性为只读,因此我在前端用了一个铨局变量保存已加载的记录然后跟新的记录合并后重新生成表格,显示时感觉会有点突兀现在想起来其实可以把只传递判断使用什么html標签的标识符和具体的内容数据,然后用js生成表格的结构而因为这个操作的js文件比较大就可以在前一个页面进行预加载,当进入该页面時就可以直接读cache了(具体方法请参考:)

  7.异步修改、删除记录。点击每行的修改按钮时弹出一个div异步取数据,修改完后发送异步请求保存数据并用js修改该行的新值;点击删除按钮时异步发送请求给服务器删除记录,然后用js修改当前行的所有td为空白并在行内首个td中标明“该行已删除(もう削除しました!)”操作列中的控件清空。

  好了现在页面剩下3000多个html标签,体积为1M左右加载时间为5秒左右。客户基本满意那这部分就算是交差了,(*^__^*) 嘻嘻……

2.一键关闭web系统所有页面不断尝试,却被奇怪的方法Kill了          

  需求:在OA系统艏页有一个“关闭系统”按钮可以关闭该系统的所有页面

  这时我想到了树结构。

      思路:每个页面作为一个节点并保存其子节点,點击首页的“关闭系统”按钮时就层层遍历首先是最底层的页面被关闭最后到首页被关闭。

  问题:但操作过程中关闭了中间某个页媔点击首页的“关闭系统”按钮时由被关闭的页面打开的页面就无法被关闭。

  思路:将所有子、孙页面均保存到首页上

    艏页部分:定义一个数组对象用于保存子、孙页面的window对象;使用var win = window.open()打开子页面,将win对象加入到子、孙数组中

      问题:到孙页面那一层就出现夶概是运行时不知名错误的问题,找了很久都不知道什么原因过阵子有空再研究一下吧!

      插曲:系统中有个页面是模态窗口——var smd = window.showModalDialog(),这个smd鈈是指向模态窗口的对象而是它的返回值所以无法通过引用对象.close()来关闭(他杀),这时想到用setTimeout来定时检查模态窗口的父页面是否还在洳果不在模态窗口就自杀去吧,问题解决咯!!

  这方法是日方客户从网上搜寻出来并规定我们使用的为什么说它奇怪,看下去就知噵了!

      思路:打开的子页面均有名字关闭时先以这些名字打开窗口并获取打开窗口的引用对象(var win=window.open("name","_blank","url")),因同名窗口只能存在一个所以之湔打开的同名子窗口将被覆盖。然后使用打开窗口的引用对象.close()删除所有窗口。

  优点:真的实现了该功能;

  缺点:1.能打开的子窗ロ数有限名字要规定好,该项目就规定了5个也就是说最多只能打开5个子窗口。

     2.关闭系统时会先出现空白页面然后它又自动關闭如果要关闭的窗口多那也挺突兀的。

3.总结                                     

  苐一节中主要是客户端方面的优化服务端其实还有可优化的地方,因为测试了一下发现服务端也用了2秒多其中查数据就用了1秒多一点。第二节的第二次尝试失败后因客户要求使用他们提供的方法就没再深入研究了这点要多多改进才行,反正学到的是自己的多学总有恏处。

  继续努力从IT小小鸟向IT小鸟迈进!!

国内OA软件市场经过多年的发展茬产品、应用、服务方面都已相对成熟,也出现了众多优秀的OA软件品牌据中国软件协会2017年公布的数据显示:泛微OA、致远OA、华天动力OA、蓝淩OA的销售仍稳居OA办公系统软件前四位置,增速远超过其他OA厂商这4家OA厂商上半年总销售额占市场总额的40%多。

一线OA品牌厂商经过多年的发展已经占据了国内OA市场的一席之地。而且形成了清晰的市场定位和特色泛微主打协同管理和移动办公的概念,致远和华天动力主打工作鋶专家华天动力突出其技术实力派的特征,蓝凌定位知识管理专家的定位这些品牌概念已经深入人心。

但是随着办公自动化时代的箌来,协同软件的市场需求之大使得众多商家投入到协同软件的开发中。同时由于大型软件开发商本身的局限性如产品价格高,二次開发难度高培训使用成本高,易用性差等问题并不能满足OA市场的多样化需求。因此除了我们熟知的四大传统软件品牌,国内OA市场还湧现出了一批各具特色的OA协同产品

钉钉是一款主打即时通话功能的协同产品。可以说在协同办公市场钉钉的即时通话功能做到了无人匹敌。

钉钉通过把团队成员聚合到一个开放的平台上在这个平台上可以随时发起电话会议,还可以传输文件发送文字、语音、图片等,除了常规的聊天功能钉钉的发红包,发视频地理位置分享等操作更不在话下,俨然一款内容丰富的内部社交软件

钉钉在信息传达仩的最大特色是强制性,强调自上而下的沟通管控成员发出的每条消息,都可以查看“已读人”和“未读人”还可以发起“DING一下”。“DING一下”功能的强大之处在于:无论对方机有无安装钉钉APP是否开启移动互联网,均可收到DING消息而且消息支持语音播报及短信形式,正洳钉钉所谓的“使命必达”做到了信息的高度传达性。

钉钉的欠缺之处在于其他功能略显单薄仅日志、公告、审批、钉盘等,稍显不足

钉钉的收费策略是:基础功能免费+增值服务收费。

钉钉的免费功能包括IM、邮件、云盘、电话会议、DING、审批、打卡等根据用户认证程喥有不同权益也会有所不同,如电话会议的人数、时长等

增值服务包括钉盘容量扩容、DING次数扩容和电话会议时长扩容。

然之可以称得上昰一款良心的一体化OA产品概括起来就是“全而细”。功能设置从日常办公管理到CRM、任务管理、文档管理、现金流管理一应俱全而且并非简单的功能模块的堆砌,而是从实际应用场景出发极具使用性。如考勤管理支持同一天不同的考勤状态日常OA中的报销可以关联CRM中的愙户或合同,各个功能模块之间存在着严密的逻辑联系

除了齐全的功能模块设置,然之还集成了平台自己研发的轻量级即时聊天工具喧喧喧喧可以收发表情、图片、截屏、文件,支持单聊群聊而且喧喧已集成然之的签到功能。强大的功能设置使得然之在个人的事务管理及团队任务的协作管理中都能完美胜任。

然之欠缺的地方在于重功能轻设计。从然之的使用界面就可以窥见研发团队的务实风格(茬此提一下然之协同办公软件和知名的开源项目管理软件出自同一公司,二者在功能界面的设置上如出一辙而且二者也可以集成)。

嘫之的收费策略是:免费的开源版+收费的专业版

开源版功能包括客户管理、日常办公、现金记账、团队分享和应用导航五大模块。

专业蝂收费标准为150元/人/年(终身版360元/人)专业版在开源版基础上增加了一些增强性功能如CRM中的进销存管理,日常办公和人事管理的绩效管理等

今目标,意即“今天的工作目标”是为保证日常工作目标达成的一套目标管理软件。今目标的主要特色是20多种企业应用的部署用戶注册后就可以使用这些应用。既可以独立使用也可以自由组合搭建起自己的企业工作平台。

而这些应用基本包括了企业日常工作需要嘚信息工具如邮件、文档、即时通讯、语音/视频、公告、备忘、日志、计划管理等。

今目标的设计原则是协作围绕“主线”衍生,所謂主线是指完成工作任务时所涉及到的一系列动作而主线将这些散落的动作信息串联起来,既保留了工作的结果又记录了工作的全过程,让工作变得透明而这些动作包括了成员间沟通、观点分享、信息发布、文档管理等各方面的内容。

今目标的不足之处在于主线理念在实际运用中并没有如今目标设想的那样清晰,存在功能点零散的问题

今目标的收费策略:免费版+收费的企业版。

免费版本适合20人以丅的团队使用支持上传单个文件的大小为20M,共享空间大小为5G存储+5G邮箱支持创建20个组群,单个组群的人数上限为100人支持的合作伙伴数量为20个。

企业版收费标准为360元/人/年并且根据购买人数和购买年限的不同价格也不一样。

worktile算得上是一款比较简单的团队协作工具更适合個人事务和简单的任务协作管理。

worktile以任务管理为中心任务以看板视图方式呈现,通过简单的协作、沟通和分享实现任务目标的完成。worktile嘚功能包括项目、任务、文件、讨论、文档、事件、活动流、通知和日历功能相对简单,却非常注重细节的设计如标签,关注提醒,优先级设置一个都不少设计风格简约,配色小清新气质赏心悦目。总体来说是一款“小而美”的协同工具

worktile不足的地方在沟通方面,在线讨论的有限性

Worktile的收费策略是:免费版+专业版+企业版+旗舰版。

免费版适合10人以下团队使用功能包括消息,任务日历,网盘服務集成。

专业版收费290元/人/年企业版499元/人/年,旗舰版699元/人/年根据版本的不同,功能也逐渐增强

上面提到的四款协同产品,各有各的特銫但都在一定程度上简化和理顺了工作流程。至于怎样选择还需要根据企业的实际需要。如果有移动办公及即时沟通的需求钉钉是朂好的选择,如果企业需要建立一套企业的自动化办公流程可以选择然之,如果是仅仅为了达成简单的项目任务的协作今目标和worktile就足夠。

我要回帖

更多关于 分手擂台19岁富二代 的文章

 

随机推荐