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 相关文章推荐
Microsoft Ajax Minifier 压缩javascript的方法
Mar 05 Javascript
超简单的jquery的AJAX用法
May 10 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
Jul 26 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
Aug 19 Javascript
jQuery对象初始化的传参方式
Feb 26 Javascript
纯javascript实现四方向文本无缝滚动效果
Jun 16 Javascript
angularJS 如何读写缓冲的方法(推荐)
Aug 06 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
Feb 04 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 Javascript
JavaScript多种滤镜算法实现代码实例
Dec 10 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
Apr 11 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
phpinfo 系统查看参数函数代码
2009/06/05 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
python的re模块应用实例
2014/09/26 Python
python通过线程实现定时器timer的方法
2015/03/16 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
基于Python实现扑克牌面试题
2019/12/11 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
详解python的super()的作用和原理
2020/10/29 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
html5 canvas 使用示例
2010/10/22 HTML / CSS
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
工商学院毕业生个人自我评价
2013/09/19 职场文书
地理科学专业毕业生求职信
2013/10/15 职场文书
预备党员综合考察材料
2014/05/31 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
2014年评职称工作总结
2014/11/20 职场文书
领导参观欢迎词
2015/01/26 职场文书
2015年预算员工作总结
2015/05/14 职场文书
亮剑观后感500字
2015/06/05 职场文书
超级礼物观后感
2015/06/15 职场文书
员工旷工检讨书
2015/08/15 职场文书
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
详解OpenCV曝光融合
2022/04/29 Python