WordPress 网站开发“微信小程序“实战(三)

news/2024/4/27 13:25:38/文章来源:https://blog.csdn.net/weixin_34247032/article/details/89018576

本文是“WordPress 开发微信小程序”系列的第三篇,本文记录的是开发“DeveWork+”小程序1.2 版本的过程。建议先看完第一篇、第二篇再来阅读本文。

如果你没有看过本小程序,可以通过下面的小程序码进入体验。注意看文章的此时你扫码进入的版本可能不是1.2 版本了。

devework+ 微信小程序

“DeveWork+”小程序v1.2 的更新内容主要集中在提升用户体验的优化点以及修复遗留bug。如同上一篇,本文除最后一章节,每个章节即为一个改动点,并参考微信小程序的开发者工具更新历史采用 A(Add)、F(Fix)、U(Update) 作为小标题开头。

A:新增“关于与反馈”页面

“DeveWork+”小程序v1.2 的新增内容基本上就只有这个“关于与反馈”页面了。目前能通过文章内容页脚、阅读记录页面页脚两个入口进入。页面内容主要是介绍小程序、提供反馈入口与联系方式。反馈入口本想采用小程序的“客服会话”组件,但默认样式实在是太难看了,最后是采用button 组件通过设置 open-type="contact" 的方式进入客服对话。有兴趣欢迎通过客服会话勾搭,但一般我不会去看的哈哈,建议还是采用邮件这类联系方式。

“关于与反馈”页面截图

A:复制文章URL 功能,引导外部浏览器阅读

一些读者可能会疑惑“DeveWork+”小程序里面的文章内容,涉及到的外链均不可点。这个锅可就得由小程序来背了——微信小程序是天然的封闭体系。也因为个人小程序的规定约束,评论内容是不会展示出来的。在这个版本中增加了一个复制文章URL 的功能来引导用户前往外部浏览器阅读原文及其评论。

复制URL页面截图

使用到的是wx.getClipboardData这个接口,代码因为没啥技术含量就不展示了。

A:在一些页面启用PullDownRefresh

PullDownRefresh即上拉重加载。这个版本在一些页面启用了PullDownRefresh,有如下两个坑:

1)如果下拉后的背景是白色的,需要将app.jsonwindow 对象的backgroundTextStyle设为dark, 否则无法显示loading 动画。

2)小程序中scroll-view 组件与onPullDownRefresh 不能同时使用。

F:修复wxParse 的若干bug

这个版本修复wxParse 的bug 主要集中在样式层面的,有部分内容已经向wxParse 的开发者提交PR。

1)一些内联元素没有相应的内联样式。如del 标签。

2) pre 标签的优化。本站的文章内容大多有大段代码,之前在小程序版上显示一直不是很好看。原因是wxParse 默认将代码中的换行符删掉了。

3)li 标签圆圈样式,行高样式统一。

U:提升用户体验的若干优化点

这个版本主要是为了提升用户体验,所以在如下点进行了优化:

1)下拉加载文章的Loading 样式进行了修改。抛弃了默认loading 组件,而采用跟网站一样的loading 效果,直接用CSS3 写。

2)增加数据加载失败的弹窗提示。wx.request()这类网络请求事件有可能遇到加载失败的情况,这时候予以用户提示是有必要的。Jeff 的处理方式增加一个弹窗,然后在fail 事件进行调用。

数据加载失败的弹窗提示

// https://devework.com/wordpress-weapp-3.html
// 网络加载失败提示
function netWorkErrorAlert(){wx.showModal({title: '文章加载失败',content: '请求失败,可能是网络故障,请稍后再试。',showCancel: false,success: function (res) {if (res.confirm) {console.log('netWorkErrorAlert 用户点击确定')}}})
}// 实际过程本人是用promise 的catch 状态,这里仅演示原生语法
wx.request({url: 'test.php', //仅为示例,并非真实的接口地址success: function(res) {console.log(res.data)}fail: function(res) {// netWorkErrorAlert 函数我是放到了util 里面util.netWorkErrorAlert();}
})

3)“无过多文章”场景的优化。现在能做到在“无过多文章”场景下不发送请求了。

4)阅读记录页面为空时候的展示。增加了一个图标状态。

F:scroll-view 组件bindscrolltolower 事件多次执行

这个也是微信小程序的一个坑点。小程序首页的scroll-view 组件bindscrolltolower 绑定了loadMore()函数。在开发工具上每次下拉加载正常,但在真机上却发现每下拉一次,loadMore()函数会被重复多执行两三次。如此本来是一次加载6篇文章,实际居然加载了24篇!

Jeff 的解决方案是采用了个计时器,在loadMore()函数函数中,如果发现上次运行loadMore()函数的时间与本次时间差在300ms 内,证明是小程序的bug 导致的被重复执行,此时退出这次运行函数。

// https://devework.com/wordpress-weapp-3.html
// 需要在page 的data 对象中设置默认值
data: {lastLoadTime: 0 //上一次load的时间
},// 下拉加载绑定的函数
loadMore: function (e) {// 300ms 内多次下拉的话仅算一次//获取点击当前时间var curTime = e.timeStamp;//上一次加载的时间var lastTime = this.data.lastLoadTime;console.log(lastTime, curTime, curTime - lastTime);if (curTime - lastTime < 300) {console.log("不正常的加载间隔时间");return;}... //其他代码略this.setData({lastLoadTime: curTime});... //其他代码略}

通过如上的方式就可以做到scroll-view 组件bindscrolltolower 事件每次均只执行一次。

另外一提的是,scroll-view 组件发现有时候下拉加载的时候页面有时候会有瞬时抖动的情况。对于这个暂时还找不到解决方法。

U:专题文章页启用了新的布局样式

为了与首页的文章列表样式相区别,在专题文章页启用了新的布局样式:左图片右标题+发布时间等信息集合。采用flex 布局三两下就搞定,不过反而遇到个CSS 上的问题——text-align:justify;webkit-line-clamp 共用导致的问题。如下图:

文章列表页面新的布局样式

自己在平常的开发中基于兼容性考虑从来都不会用text-align:justify;(小程序本身支持justify),当这个属性与多行截字的webkit-line-clamp共用就会导致上面的问题。解决方法是改成text-align:left;

文末结题

以上就是1.2 版本的主要更新内容。1.2 版本的审核算快,第二天晚上就告知通过了。

1.2 版本审核

在这里也顺便说两件事情:

1)这阵子有不少人通过本人的联系方式来索求源代码。统一说明下,现阶段不打算开源代码。Jeff 最讨厌就是各种伸手党,特别是那些直接发一封正文为空,标题为类似“发份代码过来”邮件的人——这种邮件我是立马右键删除。开诚布公:关于小程序代码,有能力者请参考本系列文章或其它资料自己写;没能力者可考虑有偿合作,就酱。

2)最近发现本系列第一篇[《WordPress 网站基于REST API 开发“微信小程序”实战
》]( https://devework.com/wordpres... ) 被人。。怎么说呢,说抄袭么又不能这么盖棺定论,但文章标题乃至全文思路都是大段大段参考,句子稍微换了下表达方式。对于这种“抄xi”方式,自我开始写博客以来也不少见,暂且送上两个字:呵呵。如果看官有幸看到那篇文章,请不要认为我那篇是抄袭人家的哦~

本站“微信小程序”系列文章:https://devework.com/tag/weapp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_829803.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS中为网站添加图标到主屏幕以及增加启动画面【转】

虽然没有能力开发Native App&#xff0c;但还是可以利用iOS中Safari浏览器的特性小小的折腾一下&#xff0c;做一个伪Web App满足下小小的虚荣心的。 既然是在iOS中的Safari折腾的&#xff0c;那么代码中利用到的也基本上都是Safari的私有属性。 添加图标到主屏幕是Web App的第…

如何将网站挂在自己的机子上 自己的机子做服务器

如何将网站挂在自己的机子上 自己的机子做服务器 想完成的任务&#xff1a; 我们在本地机上&#xff0c;做好了个网站&#xff0c;经测试&#xff0c;完全可行。那么我们如何将它挂到服务器上呢&#xff1f; 形如&#xff1a;我们访问http://www.cnblogs.com&#xff0c;那么就…

实现基于LVS负载均衡集群的电商网站架构

实现基于LVS负载均衡集群的电商网站架构具体如何实现电商网站请参看博客&#xff1a;http://13150617.blog.51cto.com/13140617/1978954实验一、实现基于NAT模式的LVS负载均衡&#xff1a;准备三台主机&#xff1a;一台Director&#xff08;桥接网卡、仅主机网卡&#xff09;&a…

[JS,NodeJs]个人网站效果代码集合

上次发的个人网站效果代码集合&#xff1a; 代码集合&#xff1a; 1.彩色文字墙[鼠标涟漪痕迹] 2.彩色旋转圆环 [模仿http://www.moma.org/interactives/exhibitions/2012/centuryofthechild/中间部分效果&#xff0c; 那个走路的孩子技术很简单&#xff0c;和以前的春分秋分Go…

springCloud微服务--启动网站监控工程(hystrix+actuator)

在star.spring.io上启动监控网站工程 如果你想用现有工程&#xff08;建议新起一个工程&#xff0c;因为这个工程仅用于监控&#xff0c;不干其他的事&#xff09;你可以在pom中填入以下内容&#xff1a; 配置工程的yml文件 重点在选中的部分&#xff0c;port是端口&#xf…

资深架构师,讲述大型网站的系统架构演变过程

先举个例子感受一下千万级到底是什么数量级&#xff1f; 之前很流行的优步(Uber)&#xff0c;从媒体公布的信息看&#xff0c;它每天接单量平均在百万左右&#xff0c; 假如每天有10个小时的服务时间&#xff0c;平均QPS只有30左右。对于一个后台服务器&#xff0c;单机的平均…

程序员,如何逐步去构建一个大型网站系统,面试必问!!!

往往程序员在面试的时候&#xff0c;公司的面试任职资格上&#xff0c;总有一个大型系统网站的开发经验&#xff0c;我们先来看看几张面试招聘信息截图.......大型网站定义 首先我们要思考一个问题&#xff0c;什么样的网站才是大型网站&#xff0c;从网站的技术指标角度考虑这…

如何在你的网站中嵌入 RunJS 的代码 (gist)?

RunJS 推出的一个叫做 Gist &#xff08;此名完全来自与 Github 同样功能&#xff09;的小功能&#xff0c;假如你在 RunJS 上写好了代码&#xff0c;你可以在自己的网站中加入如下 script 标签来引用该代码&#xff0c;代码将被语法着色&#xff0c;另外你还可以选择不同的主题…

说说大型高并发高负载网站的系统架构(更新)

鄙人先后在CERNET做过拨号接入&#xff0c;在Yahoo&3721搞过搜索前端&#xff0c;在猫扑处理过mop.com的架构升级&#xff0c;在6.cn视频网站从事开发工作&#xff0c;还在多年的工作中接触和开发过不少大中型网站的模块&#xff0c;因此在大型网站应对高负载和并发的解决方…

P2P小贷网站业务数据流程分享

P2P小贷网站业务数据流程分享 引言 这是去年年底开发的一个项目&#xff0c;完成后和用户的衔接没有很好的做起来&#xff0c;所以项目就搁浅了。9月以来&#xff0c;看各路P2P风声水起&#xff0c;很是热闹&#xff1b;这里分享下我的设计文档&#xff0c;算是抛砖引玉&#x…

高性能网站构建实战文摘

第一篇 架构规划篇 第1章 网站架构简介 1.1网站的硬架构 1.1.1 机房的选择 1.1.2 带宽的大小 1.1.3 服务器的划分 1.2 网站的软架构 1.2.1 框架的选择 1.2.2 逻辑的分层 表现层&#xff0c;应用层&#xff0c;领域层&#xff0c;持久层 1.3 网站架构需要考虑的几个问题 1.3.1 h…

LNMP构建动态网站WordPress

一、部署LNMP架构1、安装nginx#配置nginx源cat>/etc/yum.repos.d/nginx.repo<<-EOF[NGINX]namenginxbaseurlhttp://nginx.org/packages/centos/7/x86_64/enabled1gpgcheck0EOF#生成yum缓存[rootnginx ~]# yum makecache#安装NGINX软件[rootnginx ~]# yum -y install n…

通过代码审计找出网站中的XSS漏洞实战(三)

一、背景 笔者此前录制了一套XSS的视频教程&#xff0c;在漏洞案例一节中讲解手工挖掘、工具挖掘、代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完&#xff0c;内容有一些关联性&#xff0c;其中手工XSS挖掘篇地址为快速找出网站中可能存在的XSS漏洞实践…

html 树形结构_第四:高权重网站结构打造

第四&#xff1a;高权重网站结构打造网站结构是网站的骨架&#xff0c;就像人也有骨架一样&#xff0c;及其重要。在搜索引擎打分规则中&#xff0c;网站的得分占比还是非常大的&#xff0c;我们下面会给大家分享下网站结构优化建议。★ 什么是网站结构网站的结构&#xff0c;可…

jQuery css3仿游戏网站右键环形菜单

效果展示 http://hovertree.com/texiao/jquery/86/PC用户右键弹出环形菜单。手机用户扫描二维码&#xff1a;长安可以弹出环形菜单。 转自&#xff1a;http://hovertree.com/h/bjaf/aht9w1n8.htm web前端特效:http://www.cnblogs.com/jihua/p/webfront.html转载于:https://www.…

使用jenkins配置.net mvc网站进行持续集成一

最近好久没有更新文章了&#xff0c;因为好久没有写代码了&#xff0c;以至于我不知道同大家分享些什么&#xff0c;刚好&#xff0c;今天突然叫我学习下jenkins每日构建&#xff0c;我就把今天的学习笔记记录下来&#xff0c;这其中很多东西都是公司同事之前调研总结的&#x…

TLS 1.2 协议现漏洞,多个网站受影响

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; >>> TLS 1.2 协议被发现存在漏洞&#xff0c;该漏洞允许攻击者滥用 Citrix 的交付控制器&#xff08;ADC&#xff09;网络设备来解密 TLS 流量。“TLS 1.2 存在漏洞的原因&#xff0c;…

PbootCMS V1.3.7 发布,PHP 建站系统

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; >>> PbootCMS V1.3.7 build 2019-03-12 1、修复部分情况数据库语句执行发生的错误不能正常显示的问题&#xff1b; 2、修复搜索时表单传递字段控制被过滤掉的问题&#xff1b; 3、新增…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性&#xff08;Avaliability&#xff09;描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间&#xff08;故障时间&#xff09;故障修复时间点-故障发现&#xff08;报告&#xff09;时间点…

使用tomcat发布一个外网可以访问的网站

方法/步骤11.安装外网映射工具步骤阅读22.下载通tomcat33.更改tomcat的conf文件夹下文件server.xml1.<Connector port"8080" protocol"HTTP/1.1" connectionTimeout"20000" redirectPort"8443" />端口号:port改为802. <Engin…