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 相关文章推荐
通过JAVASCRIPT读取ASP设定的COOKIE
Feb 15 Javascript
jquery 多行文本框(textarea)高度变化
Jul 03 Javascript
js星星评分效果
Jul 24 Javascript
JS在可编辑的div中的光标位置插入内容的方法
Nov 20 Javascript
JavaScript把数组作为堆栈使用的方法
Mar 20 Javascript
下一代Bootstrap的5个特点 超酷炫!
Jun 17 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
JS实现前端页面的搜索功能
Jun 12 Javascript
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
vue.js页面加载执行created,mounted的先后顺序说明
Nov 07 Javascript
vue实现登录功能
Dec 31 Vue.js
学习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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
jquery中对表单的基本操作代码
2010/07/29 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
document.createElement()用法
2013/03/13 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
python中列表的含义及用法
2020/05/26 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
党员年终个人总结
2015/02/14 职场文书
个人简历求职信范文
2015/03/20 职场文书
物流业务员岗位职责
2015/04/03 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书