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

本文共 1099 字,大约阅读时间需要 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"]}

 

转载于:https://www.cnblogs.com/batsing/p/5622761.html

你可能感兴趣的文章
最近2个月的生活
查看>>
有哪些问题应该得到解决?
查看>>
FineReport中如何自定义登录界面
查看>>
元素始终居浏览器窗口中间的位置
查看>>
spring-boot2.x 中使用redis
查看>>
word提示您试图运行的函数
查看>>
Docker持续部署图文详解 | 高效运维最佳实践06
查看>>
NoSQL生态系统
查看>>
DELPHI自定义事件
查看>>
江苏钢铁业联合重组胎动 重整方式多元化
查看>>
为何3D打印技术普及一直很慢?因为人们还不够了解这项技术
查看>>
Linux的常用目录(Ubuntu)
查看>>
linux 下更改文件名编码方式
查看>>
浏览器内核相关
查看>>
深入了解java运行时的内存区域
查看>>
Azkaban的Exec Server分析 30:JobRunner如何构造一个Job大揭秘
查看>>
varnish-cache:高性能反向代理缓存服务器和http加速器
查看>>
61.使用yum下载rpm包
查看>>
Completely Uninstall Node.js from Mac OS X
查看>>
Linux中什么是动态网站环境及如何部署
查看>>