当前位置: 首页 > news >正文

wp全站ajax插件,WordPress的全站Ajax加载(四)完整代码篇(完结)

最近发现小伙伴们对ajax加载比较感兴趣,我之前也写了三篇转门介绍Ajax,自以为已经结束了 写的也比较清楚了。有点懒同学给我提了建议“得把读者都当成小白来看待,不然估计还看不懂”。此文接受建议而出,不过个人还是觉得小伙伴们不要太过把自己当小白,还是要多学会思考总结。本人以前也是小白一个 学的也不是编程。好了 废话不多说 直接进入主题。

这篇部分代码是本人正在使用的代码摘录而出,使用了html5的API来控制历史记录。代码为ajax的核心代码,没有ajax操作时候的一些特效(内容部分会有个简单的半透明渐变处理)。如果你的主题文章部分的DIV是 #content的话 应该可以直接拷过去就用。我说的是应该。

//全局变量

var ajaxBinded = false;

jQuery(document).ready(function() {

//下面三行你可以插入到你的jQuery(document).ready(function()里面,html5的历史记录API

if( history && history.pushState){

//为真就执行Ajaxopt函数

Ajaxopt();

}

})

//Ajaxopt函数

function Ajaxopt(){

//所有不为新窗口打开的链接

$('a[target!=_blank]').live('click',function(event){

var link = event.currentTarget;

var url = link.href;

if ( event.which > 1 || event.metaKey || event.ctrlKey )

return

if ( location.protocol !== link.protocol || location.host !== link.host ){

return;

}

if (link.hash && link.href.replace(link.hash, '') === location.href.replace(location.hash, ''))

return

if (url.indexOf("respond")>0||url.indexOf("/wp-admin/")>0||url.indexOf("wp-login.php")>0||url.indexOf("sitemap.xml")>0)

return

//以上条件语句均为判断链接时候需要ajax加载,下面2句为执行loadDate函数进行ajax操作。

loadData(url,true);

event.preventDefault();

});

}

//loadDate函数

function loadData(url,toPush){

//进行AJAX操作

$.ajax({

url:url,

data: "soz=ajax", //这个可以参考ajax全站加载系列文章第二篇。

dataType: "html",

type: "post",

beforeSend:function(jqXHR, settings){ //加载前操作 #content的DIV变化

$('#content').fadeTo(500,0.3);

}

,

complete:function(){ //加载后操作 #content的DIV变化

$('#content').fadeTo(200,1);

}

,

success:function(message){ //加载成功的操作

var msger = message;

var titl1 = $(message).find("h1:first").text();

var titl2 = $(message).find("h2:first").text();

if (titl1 == "") {

window.document.title = titl2 + " \u2502 SOZ";

}

else {

window.document.title = titl1 + " \u2502 SOZ";

}

//以上几句为组合新页面的标题。下面一句为插入ajax回来的内容到"#content"的DIV容器内。

$("#content").html(msger);

if(toPush){//使用html5的特有API 来改变历史记录数据。

window.history.pushState(null, titl1, url);

}

if(!ajaxBinded){//ajax后重新绑定新加载页面的ajax事件。

ajaxBinded = true;

$(window).bind('popstate', function(e){

loadData(location.href,false);

return false;

});

}

}

,

error: function() {//如果加载失败 报错内容

$("#content").html("

AJAX Error...

");

},

});

}

以上为所有ajax操作的必要步骤,小白同学可以仔细研究。高手可以路过 嗯

From: http://soz.im/wordpress-is-the-stations-ajax-to-load-four-complete-code-articles.html

相关文章:

  • Linux操作系统的目录结构
  • 怪物猎人ol服务器维护,怪物猎人OL什么时候关服_2019年停运时间公布
  • C# 字符串操作
  • FMF与UF的对比分析
  • Linux多线程编程
  • Linux内存映射(mmap)
  • 对比两个页面日期框的区别
  • ROS驱动支持
  • 一个普通的Oracle 维护人员写的《Oracle DBA数据库日常维护完全手册》
  • SPI接口详细介绍
  • ASP.NET两级联动下拉框
  • 一文读懂 4 线 SPI
  • 一个javascript的小问题
  • linux register_chrdev函数解析
  • 人生的水很深:万钢——在办公室里用煤油灯言志的科技部长
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Date型的使用
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Javascript设计模式学习之Observer(观察者)模式
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • Vue2.x学习三:事件处理生命周期钩子
  • webpack入门学习手记(二)
  • 大快搜索数据爬虫技术实例安装教学篇
  • 基于web的全景—— Pannellum小试
  • 计算机在识别图像时“看到”了什么?
  • 那些年我们用过的显示性能指标
  • 入口文件开始,分析Vue源码实现
  • 学习笔记TF060:图像语音结合,看图说话
  • 一些关于Rust在2019年的思考
  • 在electron中实现跨域请求,无需更改服务器端设置
  • elasticsearch-head插件安装
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • # Apache SeaTunnel 究竟是什么?
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (二)windows配置JDK环境
  • (汇总)os模块以及shutil模块对文件的操作
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)菜鸟学数据库(三)——存储过程
  • (转)树状数组
  • (转载)(官方)UE4--图像编程----着色器开发
  • ***利用Ms05002溢出找“肉鸡
  • . NET自动找可写目录
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET CF命令行调试器MDbg入门(一)
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题