博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
懒加载 与 富文本编辑器 的 相爱相杀
阅读量:6177 次
发布时间:2019-06-21

本文共 1019 字,大约阅读时间需要 3 分钟。

最近摄影入魔,已经很久没有在园里写技术博文了。想想还是不能玩物丧志,误了正业。在此分享之前在项目重构时遇到的一个技术小矛盾,希望对大家遇到类似问题时有所帮助。

lazyload

相信大家对“懒加载”都非常熟悉了,比如微信文章里的图片、电商网站的产品详情图等等。而懒加载,用得最多的插件就莫过于 jquery.lazyload.js 了,示例如下

可以看到,img标签与正常的图片的并不相同,img的src属性指向的是一个loading的加载图,data-original属性的才是真正的图片的地址。

富文本编辑器

最常用的富文本编辑器莫过于 KindEditor,很完整明了。和博客园的文本编辑器差不多,也可以修改文本格式,上传图片,切换成源码模式等等。

问题来了

这两者有什么矛盾呢?后台编辑所使用的KindEditor上传图片等使用的img标签是正常的src,而前台所显示的时候img的src是loading图。而且,在后台重构之前,这一段的页面并非是可视化生成而是直接用HTML输进去的,数据库中的详情页的内容都是按lazyload的格式。所以在KindEditor中原来的图片其实显示不出来。难道就这样放弃可视化编辑吗?当然不能放弃。

方案一:前台和数据库按原来的样子,后台在编辑时把编辑器内的图片显示也用lazyload显示出来,后台提交保存时用正则匹配把src替换成lazyload需要的样子再入库;

方案二:把数据库里面的内容全部改了,改成正常的img标签和src属性;前台输出后用js替换成符合lazyload所需要的格式。

方案三:数据库原来的内容不改,但新的数据使用标准img标签。后台编辑时,如果是lazyload的格式则用js把图片替换成真实图片,否则直接显示;提交时,使用的是标准img标签;前台显示如果是标准img标签,则用js修改成lazyload所需要的格式。

在衡量过程中,方案一的后台提交保存时用正则匹配修改成lazyload所需要的样子时比较麻烦,这个正则写起来相当有难度;方案二修改原来的数据库中的数据也是因为这个正则匹配的问题而不采用。最后采用了方案三。

管理后台的显示替换核心代码如下,需要留意的是不只要替换可视化界面的显示,还要重新生成里面的代码框

 

WAP版前端显示页面的产品详情核心代码如下

{$proData["CMSinfo"]}

 

转载地址:http://hfzda.baihongyu.com/

你可能感兴趣的文章
课堂作业第四周课上作业一
查看>>
使用Java语言开发微信公众平台(七)——音乐消息的回复
查看>>
陶哲轩实分析习题9.1.6
查看>>
常用音频软件:Cool edit pro
查看>>
努力的方向,除了诗和远方,还有一堆技术。
查看>>
SQL CHECK 约束
查看>>
git提交到一半关闭时
查看>>
WMware 10 Ubuntu 12.04 进入Unity模式
查看>>
简单通用的访问CVS的方法
查看>>
kbengine mmo源码(完整服务端源码+资源+完整客户端源码)
查看>>
【操作系统】实验四 主存空间的分配和回收
查看>>
Log4j 配置 的webAppRootKey参数问题
查看>>
VMware ESXi 5.0中时间配置中NTP设置
查看>>
C++中memset()函数笔记
查看>>
oracle sql 数结构表id降序
查看>>
使用cnpm加速npm
查看>>
MySql跨服务器备份数据库
查看>>
一个字典通过dictionaryWithDictionary 他们的内存指针是不同的
查看>>
HTTP 错误 500.0的解决方法。
查看>>
CCF201612-1 中间数(解法三)(100分)
查看>>