`

模拟ajax无刷新提交的4种方法

    博客分类:
  • ajax
阅读更多

在web开发领域,自从有了ajax技术,使得数据的异步提交变得非常方便快捷;那么在没有ajax技术之前,我们该怎样实现ajax的无刷新效果呢。

本文主要以"人物投票"的功能为例,来讲述如何轻松的模拟出无刷新效果。

首先我们需要创建这么几个文件:

  • index.html,负责前台的展示(包括人物的照片和一个投票的按钮);
    页面展示
  • tp.php,负责接收数据,处理数据;
  • count.txt,负责存放数据(票数)的空文本,在实际开发中大家可以将数据存放在数据库中,前台需要的时候可以从数据库中提取。

实现的方法:

  • 第一种使用204状态码的特性,实现只提交但"不做任何反应的效果"。此方法只需要在后台文件中这样设置http头部:"http/1.1 204 No Content",而前台文件几乎不需要做任何特殊处理。
    index.html:
    <p><img src="./1.jpg" style="width: 200px;height: 300px;"></p>
    <p><a href="tp.php"><button>投票</button></a></p>
     tp.php:
    $count=file_get_contents("./count.txt");
    $count+=1;
    file_put_contents("./count.txt",$count);
    header('http/1.1 204 No Content');
     当我们点击一次投票按钮时count.txt文件内显示"1",而页面并没有刷新:
    count.text:
    第一次点击httpHeader
  • 第二种:在前台页面中嵌入一个隐藏的iframe,后台文件只需要处理数据就行了,这种比较简单相信大家都懂。
    index.html:
    <p><img src="./1.jpg" style="width: 200px;height: 300px;"></p>
    <p><a href="tp.php" target="count_data"><button>投票</button></a></p>
    <iframe name="count_data" style="display: none;"></iframe>
     tp.php:
    $count=file_get_contents("./count.txt");
    $count+=1;
    file_put_contents("./count.txt",$count);
      当我们再一次点击一次投票按钮时count.txt文件内显示"2",而页面并没有刷新:
    count.txt:
    第二次投票
  • 第三种:利用img的src来向后台发送请求。相信大家都知道,当我们向后台请求一张图片的时候(<img src="imgURL"/>),页面并不需要刷新,但是我们需要的图片却顺利的得到了。此处将利用这一特性,将img的src属性值设置为一个php文件来实现请求发送成功但不刷新页面的效果。
    index.html:
    <p><img src="./1.jpg" style="width: 200px;height: 300px;"></p>
    <p><button id="sub" onclick="tj()">投票</button></p>
    <script>
    	function tj(){
    		var img=document.createElement('img');
    		img.setAttribute('src','tp.php');//向tp.php发送请求
    	}
    </script>
     tp.php:
    $count=file_get_contents("./count.txt");
    $count+=1;
    file_put_contents("./count.txt",$count);
      当我们再一次点击一次投票按钮时count.txt文件内显示"3",而页面并没有刷新:
    第三次投票
  • 第四种:利用css(link),javascript等元素的src属性,所利用的原理和第三种方法大致相同,此处就不再多加赘述,大家自行测试。

 

  • 大小: 19.5 KB
  • 大小: 11.6 KB
  • 大小: 11.1 KB
  • 大小: 11.2 KB
  • 大小: 16.8 KB
1
0
分享到:
评论

相关推荐

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    程序描述:本章将使用Ajax技术实现无刷新即可浏览RSS的阅读器。添加一个RSS地址时,自动保存到数据库。打开阅读RSS时,自动获取最新的RSS内容,而无需刷新页面。 /RSSReader.jsp RSS阅读器 /rss.js ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    --我们做了优化,现在要使一个Asp.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。 +PageManager的实例方法AddAjaxUpdateControl改名为...

    超实用的jQuery代码段

    8.10 使用AJAX刷新异步提交表单 8.11 使用AJAX刷新上传图片 8.12 使用AJAX刷新验证PHP会话是否有效 8.13 在AJAX异步调用时显示加载指示器 8.14 在AJAX异步调用时处理JSON数据 8.15 解析XML数据并加载到HTML表格 8.16...

    JavaScript完全自学宝典 源代码

    \ajaxmodel\src\bonze\AutoRefServlet.java 自动刷新网页的服务器端。 \ajaxmodel\src\bonze\ProcessServlet.java 显示进度条的服务器端。 第20章(\c20) 示例描述:学习JSON并介绍Ajax与JSON。 20.1....

    .net实现购物车

    利用Ajax技术完成局部刷新。 b. 完成提交功能:即在另一页面显示收集的所有用户数据信息。 c. 完成重填功能。 2、模拟一个购物车功能:2个商品购买页面(可互相切换),一个购物车(显示购物列表)。其中商品购买...

    ExtAspNet_v2.3.2_dll

    -使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)(feedback:261629698)。 +TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。...

    蝙蝠在线考试系统 v2.2.6.rar

    使用MYSQL数据库,可以部署于WINDOWS、LINUX、UNIX等各种操作系统,内置了无处不在的AJAX能力,简洁易用,支持单选题、多选题、填空题、判断题四种题型。后台功能涵盖了试题模块管理、试题管理、考试管理、成绩管理...

    JavaScript实现前端分页控件

    现在web注重用户体验与交互性,ajax 提交数据的方式很早就流行了,它能够在不刷新网页的情况下局部刷新数据。前端分页多是用ajax请求数据(其他方式也有比如手动构造表单模拟提交事件等)。通过js将查询参数构造好发...

    蝙蝠在线考试系统v2.2.6 JSF2+SPRING+JPA

    系统使用MYSQL数据库,可以部署于WINDOWS、LINUX、UNIX等各种操作系统,内置了无处不在的AJAX能力,简洁易用,支持单选题、多选题、填空题、判断题、问答题、文件题六种题型。功能涵盖了试题模块管理、试题管理、...

    蝙蝠在线考试系统 2.2.8.rar

    使用MYSQL数据库,可以部署于WINDOWS、LINUX、UNIX等各种操作系统,内置了无处不在的AJAX能力,简洁易用,支持单选题、多选题、填空题、判断题四种题型。后台功能涵盖了试题模块管理、试题管理、考试管理、成绩管理...

    Spring in Action(第2版)中文版

    16.5spring中带有dwr的支持ajax的应用程序 16.5.1直接web远程控制 16.5.2访问spring管理的beandwr 16.6小结 附录a装配spring a.1下载spring a.1.1研究spring发布 a.1.2构建自己的类路径 a.2把spring添加为一...

    Spring in Action(第二版 中文高清版).part2

    2.4.1 四种自动装配类型 2.4.2 混合使用自动和手动装配 2.4.3 何时采用自动装配 2.5 控制Bean创建 2.5.1 Bean范围化 2.5.2 利用工厂方法来创建Bean 2.5.3 初始化和销毁Bean 2.6 小结 第3章 高级Bean装配 ...

    Spring in Action(第二版 中文高清版).part1

    2.4.1 四种自动装配类型 2.4.2 混合使用自动和手动装配 2.4.3 何时采用自动装配 2.5 控制Bean创建 2.5.1 Bean范围化 2.5.2 利用工厂方法来创建Bean 2.5.3 初始化和销毁Bean 2.6 小结 第3章 高级Bean装配 ...

    Ext 开发指南 学习资料

    碰到使用ajax获得数据,或者提交数据出现乱码 A.8. TabPanel使用autoLoad加载的页面中的js脚本没有执行 A.9. 有关grid的一些小问题 A.9.1. 如何让grid总所有的列都支持排序 A.9.2. 修改一个grid的ColumnModel和...

Global site tag (gtag.js) - Google Analytics