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 相关文章推荐
JTrackBar水平拖动效果
Jul 15 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
JavaScript模板入门介绍
Sep 26 Javascript
jQuery控制TR显示隐藏的三种常用方法
Aug 21 Javascript
Javascript打印局部页面实例
Jun 21 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
Nov 22 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
JS简单生成由字母数字组合随机字符串示例
May 25 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 Javascript
vue项目创建步骤及路由router
Jan 14 Javascript
JS 5种遍历对象的方式
Jun 16 Javascript
详解ES6 中的Object.assign()的用法实例代码
Jan 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
PHP文件大小格式化函数合集
2014/03/10 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
javascript preload&amp;lazy load
2010/05/13 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
查看django版本的方法分享
2018/05/14 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
python能否java成为主流语言吗
2020/06/22 Python
python元组拆包实现方法
2021/02/28 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
八项规定整改方案
2014/10/01 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书
Github 使用python对copilot做些简单使用测试
2022/04/14 Python