博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
懒加载 与 富文本编辑器 的 相爱相杀
阅读量:6179 次
发布时间: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/

你可能感兴趣的文章
win7 Host 与virtualbox 中的 ubuntu 11.04 共享文件夹
查看>>
Ubuntu linux 关机、重启、注销 命令 (linux)
查看>>
CoffeeScript 速抄本
查看>>
nginx做本地端口代理的问题
查看>>
客户端Web绘图VML与SVG
查看>>
java.io.IOException: 您的主机中的软件中止了一个已建立的连接。
查看>>
ace udp 组播
查看>>
URL编码以及get和post请求乱码问题
查看>>
gzip: stdin: not in gzip format 解决办法
查看>>
二维码扫描
查看>>
耐思尼克今起开放CN域名个人注册
查看>>
CentOS 5.5下安装MySQL 5.5全过程分享
查看>>
scala第八天
查看>>
JAVA图书管理系统汇总共27个 ——下载目录
查看>>
js_使用原生js方法提交post表单
查看>>
Linux下将ISO文件安装为本地YUM源
查看>>
import pcapy as pcap ImportError: No module nam...
查看>>
PHP输出缓冲控制(Output Control)函数详解
查看>>
Spring boot for Eclipse 开发指南第四节 Spring-Security
查看>>
mysql 语句优化
查看>>