2、.net NVelocity中原生javascript ajax封装使用

在页面上,我们经常会遇到局部刷新的例子,这个时候,就需要用到ajax,

因为很多代码都是公用的,所以我们想到了,将代码封装,简化了使用,减少了冗余

javascript ajax代码如下:

var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(‘Microsoft.XMLHTTP‘); //创建XMLHTTP对象,考虑兼容性
            xmlhttp.open("POST", "AJAXTest.ashx?" + "i=5&j=10", true); //“准备”向服务器的GetDate1.ashx发出Post请求(GET可能会有缓存问题)。这里还没有发出请求
            xmlhttp.onreadystatechange = function ()
            {
                if (xmlhttp.readyState == 4) //readyState == 4 表示服务器返回完成数据了。之前可能会经历2(请求已发送,正在处理中)、3(响应中已有部分数据可用了,但是服务器还没有完成响应的生成)
                {
                    if (xmlhttp.status == 200) //如果状态码为200则是成功
                    {
                        alert(xmlhttp.responseText);
                    }
                    else
                    {
                        alert("AJAX服务器返回错误!");
                    }
                }
            }
//不要以为if (xmlhttp.readyState == 4) {在send之前执行!!!!
            xmlhttp.send(); //这时才开始发送请求
//发出请求后不等服务器返回数据,就继续向下执行,所以不会阻塞,界面就不卡了,这就是AJAX中“A”的含义“异步”。试着在ashx加一句Thread.Sleep(3000);

我们为了实现 无刷新页面实现 视频的顶踩操作,首先封装ajax,新建ajax.js,采用post提交

function ajax(url, onsuccess)
{
    var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(‘Microsoft.XMLHTTP‘); //创建XMLHTTP对象,考虑兼容性。XHR
    xmlhttp.open("POST", url, true); //“准备”向服务器的GetDate1.ashx发出Post请求(GET可能会有缓存问题)。这里还没有发出请求

    //DRY:不要复制粘贴代码
    //AJAX是异步的,并不是等到服务器端返回才继续执行
    xmlhttp.onreadystatechange = function ()
    {
        if (xmlhttp.readyState == 4) //readyState == 4 表示服务器返回完成数据了。之前可能会经历2(请求已发送,正在处理中)、3(响应中已有部分数据可用了,但是服务器还没有完成响应的生成)
        {
            if (xmlhttp.status == 200) //如果Http状态码为200则是成功
            {
                onsuccess(xmlhttp.responseText);
            }
            else
            {
                alert("AJAX服务器返回错误!");
            }
        }
    }
    //不要以为if (xmlhttp.readyState == 4) {在send之前执行!!!!
    xmlhttp.send(); //这时才开始发送请求。并不等于服务器端返回。请求发出去了,我不等!去监听onreadystatechange吧!
}

html页面:

<html>
<head>
    <title></title>    //需要引入 刚刚封装的ajax函数
    <script type="text/javascript" src="js/ajax.js"></script>
    <script type="text/javascript">function cai()
        {
            ajax("ZanCai.ashx?action=Cai", function (resText)
            {
                document.getElementById("CaiCount").innerHTML = resText;
            });
        }
    </script>
</head>
<body>
<video src="diaosi.mp4" autoplay controls></video>
    <p><input type="button" name="Zan" value="赞" onclick="zan()" /><label id="ZanCount"></label></p>
    <p><input type="button" name="Cai" value="踩" onclick="cai()" /><label id="CaiCount"></label></p>
</body>
</html>
时间: 2024-08-04 16:35:29

2、.net NVelocity中原生javascript ajax封装使用的相关文章

通过ASP.NET MVC框架 + 原生JavaScript + Ajax + SQL SERVER 实现一个简单的有论坛功能的网站(有通过iis发布的例子)

ASP.NET MVC. M 为Model模型层, V 为View视图层, C 为Controller控制层.要想使用MVC框架来写网站就需要了解M V C 的作用分别为哪些.给大家简单的介绍一下: 1.当你的这个网站要与数据库交互的时候,你可以使用EF创建一个数据库模型,也可以用类存放你所需交互的字段数据.我们往往把这类文件放在model层. 2.view层,存放前端网页的. 3.controller层实现前端网页功能的,在这个层里面我们编写的方法称为action. www.lazyfitne

原生JavaScript+ajax

在网上找了几个帖子,但是由于水平有限,折腾了一会才实现了一个小程序.理论理解之后,加之一个实际Demo,对于新手理解ajax是很容易的. 我将具体的代码都贴上,方便和我一样初次学习的人理解. 操作步骤如下: 首先是请求页面的前台代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equ

原生javascript 选项卡封装

window.onload=function(){ var aBtn=document.getElementsByTagName('input'); var aDiv=document.getElementsByTagName('div'); function tab(btn,content) { for(var i=0; i<btn.length; i++) { (function(index) { btn[index].onclick=function() { for(var i=0; i<

原生JavaScript 封装ajax

原生JavaScript 封装ajax   function myajax(options){ //新建一个局部对象 用来存放用户输入的各种参数 var opt={ type:options.type||"get",//获取用户输入的传输方法,可选,不写为get data:options.data||"",//获取用户输入的数据 dataType:options.dataType||"",//获取用户输入的数据类型比如json 或者xml url

原生 JavaScript 实现 AJAX、JSONP

相信大多数前端开发者在需要与后端进行数据交互时,为了方便快捷,都会选择JQuery中封装的AJAX方法,但是有些时候,我们只需要JQuery的AJAX请求方法,而其他的功能用到的很少,这显然是没必要的. 其实,原生JavaScript实现AJAX并不难,这篇文章将会讲解如何实现简单的AJAX,还有跨域请求JSONP! 一.AJAX AJAX的核心是XMLHttpRequest. 一个完整的AJAX请求一般包括以下步骤: 实例化XMLHttpRequest对象 连接服务器 发送请求 接收响应数据

执行AJAX返回HTML片段中的JavaScript脚本

如果AJAX加载的数据是一个HTML片段,而且这个HTML片段还包含脚 本<script>块,那么在你把这数据xmlHttp.responseText用innerHTML方法插入到当前文档一个元素中,你会 发现AJAX加载回来的脚本根本没有执行.这是AJAX开发中很常见的问题,如果你不是一直在用JavaScript框架做开发,相信你早就发现这个问题 了.本文分析了两个解决办法,其中一个是讲解jQuery框架的实现. 一. 问题描述 下面举个简单的例子,演示问题所在.在下面的例子中,假设变量re

使用原生JavaScript发送ajax请求

关于使用原生JavaScript发送异步请求给服务端. 准备工作: 代码编写工具用的是sublime 服务端使用的是wamp搭的一个本地Apache服务器,主要用来返回数据 方便测试 步骤: 浏览器端 html标签绑定事件发送ajax请求----> 五步操作:1 创建异步对象XMLHttpRequest; 2 设置method url 3 发送请求给服务端 4 注册事件   5 在事件中获取服务端返回的数据,进行操作. 服务器端 1 获取请求数据 2 返回结果给浏览器 下面来一个小demo1做一

wordpress——在插件后台管理页面中添加javascript和ajax

最近在开发一个wordpress插件,需要在插件的后台管理页面上,添加自己写的javascript文件,以达到一些功能. 查了好几天的文档和资料,终于实现了. 这里先介绍下wordpress后台页面添加javascript的过程,再介绍添加ajax的过程. 添加javascript 首先我们需要知道wordpress插件开发的框架,然后再介绍javascript添加的步骤. 添加插件设置页面 开发插件,总需要在管理后台添加自己的插件设置页面.插件设置子页面,在这些页面中,可以设置和保存插件的一些

javascript ajax 简易的封装

1 function ajax(obj){ 2 var xhr = (function (){//获取xhr对象,为了兼容ie6所以进行了重新封装 3 if(typeof XMLHttpRequest !='undefined') { 4 return new XMLHttpRequest(); 5 }else if(typeof ActiveXObject !='undefined') { 6 var version = [ 7 'MSXML2.XMLHttp6.0', 8 'MSXML2.X