WordPress中利用AJAX异步获取评论用户头像的方法


Posted in Javascript onJanuary 08, 2016

在评论者输入邮箱后,异步获得评论者的头像并显示出来,个人感觉这个功能虽不能给用户体验带来多大的提升,也不算是一个实用的功能,但至少很炫,看到有的网站有添加这个功能,我也不甘寂寞所以也写了个脚本,没有时间做封装,所以直接上原理和代码。

异步动态调用头像原理

  • 获得用户输入
  • 过滤用户输入
  • 传递变量到后台
  • 后台处理数据,并返回头像的HTML代码
  • 获得后台返回数据,将HTML代码加载到当前页面

貌似很多步骤,其实很简单,我们只要将自己的主题稍作修改就可以到达效果。

简单功能截图:

WordPress中利用AJAX异步获取评论用户头像的方法

实现

功能代码:JavaScript
以下代码需集成 JQuery 框架中。
apiurl 变量为你的php api 接口文件地址,文件代码下面有。
功能主要集中在email输入框失去焦点的动作上。

function getAvatar(authorEmail) {//获得头像代码封装函数
 var nowtime = Math.round(new Date().getTime() / 1000);
 $.get(apiurl, {
 action : "get_avatar",
 email : authorEmail,
 t : nowtime
 }, function(data) {
 $('#get-avatar-img').fadeOut('slow', function() {
 $('#get-avatar-img').html(data).fadeIn();
 })
 });
 }
 
 var avatarhtml = '<div id="get-avatar-img" style="display:none;">';
 avatarhtml += '</div>';
 $('#respond').append(avatarhtml);//添加头像HTML
 if($('#email').val().length > 1)
 getAvatar($('#email').val());//获得邮箱地址
 $('#email').focusout(function() {//email输入框失去焦点绑定的动作
 var authorEmail = $('#email').val();
 var pattern = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
 var flag = pattern.test(authorEmail);
 if(flag) {
 $('#get-avatar-img').html('载入头像中').fadeIn('fast');
 getAvatar(authorEmail);
 } else {
 alert('请输入正确邮箱地址');
 }
 })
功能代码:PHP
后台响应代码,在这里我用了一个单独的页面文件来做响应,
这样做的好处是不用打开每个页面的时候都去调用这部分代码,
只是在做出请求时才去响应,这样做可以完全摒弃主题的向后兼容顾虑。
当然你也可以将响应函数挂载到wp的hook上。
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : false ;
 
if($action){//留下以后添加功能的空间,你懂的。
 switch ($action) {
 case 'get_avatar':
 $email = isset($_REQUEST['email']) ? $_REQUEST['email']: false ;
 if($email){
 echo get_avatar($email,60);
 }
 break;
 
 default:
 echo "请求内容不充分";
 break;
 }
 }

总结
So……. 很简单吧?
请求-> 响应 -> 添加 总共三步曲。
当然,这里为了增强逻辑性,突出条理,把一些必要的数据过滤,
还有一些错误判断,这些就算是留作思考吧。

Javascript 相关文章推荐
jquery $.ajax入门应用一
Nov 19 Javascript
JavaScript的public、private和privileged模式
Dec 28 Javascript
Js获取下拉框选定项的值和文本的实现代码
Feb 26 Javascript
jQuery $命名冲突解决方案汇总
Nov 13 Javascript
JavaScript中的this到底是什么(一)
Dec 09 Javascript
Form表单按回车自动提交表单的实现方法
Nov 18 Javascript
详解Vue生命周期的示例
Mar 10 Javascript
vue webuploader 文件上传组件开发
Sep 23 Javascript
总结js函数相关知识点
Feb 27 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
Jul 07 Javascript
详解element-ui中el-select的默认选择项问题
Aug 02 Javascript
Node在Controller层进行数据校验的过程详解
Aug 28 Javascript
学习JavaScript设计模式之状态模式
Jan 08 #Javascript
jQuery CSS3相结合实现时钟插件
Jan 08 #Javascript
js实现对ajax请求面向对象的封装
Jan 08 #Javascript
javascript弹性运动效果简单实现方法
Jan 08 #Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
Jan 08 #Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
Jan 08 #Javascript
jquery实现简单的遮罩层
Jan 08 #Javascript
You might like
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
php获取文件大小的方法
2014/02/26 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
JavaScript中的排序算法代码
2011/02/22 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
python抓取网页图片并放到指定文件夹
2014/04/24 Python
Python单链表的简单实现方法
2014/09/23 Python
python中星号变量的几种特殊用法
2016/09/07 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
python访问hdfs的操作
2020/06/06 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
校运会广播稿100字
2014/01/27 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
家属联谊会致辞
2015/07/31 职场文书
诚信高考倡议书
2019/06/24 职场文书
Java实现学生管理系统(IO版)
2022/02/24 Java/Android