H5在线编辑器优化总结

花了三个半月做了个编辑器。时间很仓促,很多能优化的,以此文章记录要已经优化和未来要优化的内容。

这货能干哈子,这货其实就是能做动画的,当然,有交互,样式。跟易企秀差不多,但,还有其他一些功能。

用户能编辑组件的样子。

修改事件动作。

动画可以实时预览。

详细可以看:http://120.25.241.85:8080/Main.html#/Editor/?projectId=77bffcbe4af14a92b76c32bd673bf629

手机端预览:手机端预览

说回正题,优化,其实这一版优化不行。

组件拖拽优化。

     

拖拽是很常用的功能,不就是修改left,top就行了?还能优化吗?

可以,首先第一点,我可以做函数节流。第二点,left,top会触发reflow,所以在拖动过程中可以先修改transform,结束的时候,再一次性修改left,top。

时间轴优化。

时间轴使用的是canvas,当内容很多,而且动画很长的时候,时间轴必须只显示滑动到的内容。例如下面这张图,只显示1-85帧的内容,而不是所有。

动画优化。

动画优化牵扯是最大的,这版本的动画使用的是requestAnimationFrame(简称:RAF),封装成ticker单例,其他要做动画的组件都由ticker抛出事件进行更新。

这样保证整个工程只有一处地方使用RAF。但是,还是不够流畅。还能不能优化?我经常问自己。

能!动画性能CSS3 > canvas动画>RAF>setTimeout。按照这个顺序,PC端还是使用RAF,手机端使用CSS3。实现方法,保存课件的时候,生成CSS3动画字符串,当然,字符还能压缩,压缩算法可以参考HTTP2.0的头部压缩技术,生成的CSS3动画字符串,在手机端获取之后,转换成style,转换style的代码具体参考手淘(这不算偷吧)。

组件自定义样式优化。

现在的组件样式,PC端编辑之后,保存到服务器,手机拿到之后,还要解析,解析需要花时间啊,明显可以看出换页的时候有一段空白时间。

优化方法:PC端编辑后生成CSS,组件使用状态机。

资源预加载。

图片现在手机浏览器有个特性,看不到的图片不会加载,等要显示的时候才加载,这样很糟糕,也许显示的时候,图片还没加载完,没内容。

还有就是,假设场景里面有一百张图片,不能一开始就一百张图片杂乱无章的加载吧,要有顺序,当然,哪张先显示的就先加载,没显示的按顺序预加载。

所以还要弄个图片加载管理,包括预加载,按顺序加载。

课件页面数据预加载。

当用户在播放第一页的过程中,第一页的资源已经全部加载了,这时候可以马上加载下一页的页面数据。

离职了,第二版也不知道什么时候做好,毕竟是用业余时间。第二版准备使用ES6,angular2.0,当然引擎部分可能引入VUE。也不知道代码面目全非之后能不能开源。

时间: 2024-07-28 22:24:16

H5在线编辑器优化总结的相关文章

《快速创建网站》 3.2 WordPress多站点及Azure在线编辑器

本文是<快速创建网站>系列的第6篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 1. 网站管理平台WordPress和云计算平台Azure简介 (6分钟 本文)2.1 在Azure上创建网站及网站运行机制 (13分钟)2.2 域名绑定操作和Azure负载均衡机制 (12分钟)2.3 WordPress 初始化和网站管理功能 (11分钟)3.1 WordPress 数据导入 (12分钟)3.2 WordPress 多站点支持和Azure在线代码编辑器 (14

《快速创建网站》 3.2 WordPress多站点及Azure在线编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定

本文是<快速创建网站>系列的第6篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 1. 网站管理平台WordPress和云计算平台Azure简介 (6分钟 本文) 2.1 在Azure上创建网站及网站运行机制 (13分钟) 2.2 域名绑定操作和Azure负载均衡机制 (12分钟) 2.3 WordPress 初始化和网站管理功能 (11分钟) 3.1 WordPress 数据导入 (12分钟) 3.2 WordPress 多站点支持和Azure在线代码编辑

CKedit在线编辑器

在线编辑器???? ????在实现所见即得的编辑效果. FCK????????????是开发者的名字的缩写 CKEditor????????功能很完善的,具有,在线编辑与图片上传JS插件 UEdit????????????百度自己开发的一款在线编辑器 ? CKeditor安装 http://resource.ckeditor.com/ basic package????????基本安装包????????只包含了基本的功能 standard package????标准安装包????????包含更多

Angularjs在线编辑器

1.TextAngular: https://github.com/fraywing/textAngular textAngular是一个强大的Text-Editor/Wysiwyg 编辑器,用于Angular.js应用中.安装使用方便,可以创建多个编辑器实例,双向绑定HTML内容,可以查看编辑内容的变化.不足之处是不支持上传文件到服务器,只能进行简单的文字编辑,可用于网站的用户评论模块 2.angular.xheditor: https://github.com/cipchk/angular.

jsp解决kindeditor在线编辑器struts图片上传问题

1.下载 官网下载ckeditor,解压后去掉不需要的部分,仅需保留plugin,lang,theme文件夹,这三个文件夹中用不到的东西可以删除, 比如lang文件下存放所有语言文件js,仅仅 保留en.js和zh_CN.js即可,保留jsp文件夹下的json_upload.jsp文件和 kindeditor.js文件即可,把jsp下面的jar导入 在线编辑器:http://kindeditor.net/ 2.修改json_upload.jsp 修改json_upload.jsp文件保存路径即可

用Javascript 编写 HTML在线编辑器

在线编辑器主要有3大类:1.直接用textarea 标签 优点:速度快,提交方便,可以用UBB标签来弥补不能所见所得 缺点:不直观,功能非常少 2.用 DIV或者TABLE的CONTENTEDITABLE 标签,属性来让一个区域可以编辑 优点:可以很直观,可以做各种效果 缺点:此标签在mozilla下不可用,只适合IE浏览器,且对js要求高 3.用iframe或者frame的中的document的document.designMode ="On" 来实现可编辑 优点:具有上面第二条的全

PHP.25-TP框架商城应用实例-后台1-添加商品功能、钩子函数、在线编辑器、过滤XSS、上传图片并生成缩略图

添加商品功能 1.创建商品控制器[C] /www.test.com/shop/Admin/Controller/GoodsController.class.php <?php namespace Admin\Controller; use Think\Controller; //后台添加商品功能控制器 class GoodsController extends Controller { //显示和处理表单 public function add() { //判断用户是否提交了表单(如果提交了,就

thinkphp使用在线编辑器存入html标签被转义解决

thinkphp中的create 方法收集的post表单数据中的html标签如:<p>之类存入数据库时会被转义成< p > ,导致前台显示都是代码,这个问题困扰了我几天,从fckeditor换到Ueditor还是同样的结果,最后终于搞定了 解决办法:单独收集在线编辑器的数据:$xxx -> yy = $_POST['字段名']  希望能帮助遇到同样问题的朋友!

在线编辑器Ckeditor (1) - php (30)

在线编辑器 在线编辑器也称之为所见即所得编辑器,是一种常见的html源码编辑器. 所见即所得:用户在输入的时候,不论是格式和是样式都能被系统原封不动的保存,最后在查看的时候,可以按照用户输入的原来的结构进行输出. 在线编辑器分类 市面上比较常见的在线编辑器有很多,FCKeditor(在线编辑器+Ajax浏览器端服务器文件管理器,免费的),Ckeditor(Content and Knowledge,在线编辑器与服务器端文件管理器分离,在线编辑器免费,服务器端文件管理器收费(CKfinder)),