ajax中使用总结

引言

最早接触到ajax这个名词是在做图书馆系统的时候,那时候我是负责底层EF实体,因为都是现学现用所以很多的时

间都在学习这方面的知识,而负责前台开发的人员在讨论的时候总是在提到ajax这个名词,但是因为自己没有接触过

所以当时非常的好奇这到底是个什么东西?随后在图书馆系统开发完成以后,接手了一个招标项目的开发,这个项目

采用了MVC+EF架构,在看师哥面写的前台的代的时候,基本上都是js代码,js和controller还有页面交互的时候ajax

这个东西再次出现,这次不得不了解了,因为我们需要用到这个东西来完成我们负责的东西,下面就总结一下ajax的

一些基本知识。

 ajax是什么?

ajax是指一种创建交互式网页应用的网页开发技术,是一种用于创建快速动态网页的技术。 它通过在后台与服务器

进行少量的数据交换,ajax可以实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行

更新。而传统的网页如果需要更新内容,必须重新加载整个网页页面。

ajax工作原理

不知道大家看了这样一张图是否对ajax的工作原理有了一定的理解,反正在我们第一次看到这个图的时候没有理

解,因为这张图简直是太抽象太专业了,对于初学者来说理解还是有很大难度的,下面我就结合一端小程序来给大家

通俗的介绍ajax的工作原理。

js代码:

   function AddBidTInfo() {

            var temp = document.getElementById("BidZNo");
            var BidZNo = temp.innerHTML;

            //var companyCategory = $("#companyCategory option:selected").text();  //获取选中的项
            var companyCategory = $('#companyCategory').combobox('getText')//获取当前选中的值
            var companyName = document.getElementById("companyName").value;
            var LegalPerson = document.getElementById("LegalPerson").value;
            var ProjectPrincipal = document.getElementById("ProjectPrincipal").value;
            var Tel = document.getElementById("Tel").value;

            //照片没有进行处理

            var DelegateLetter = ShowPhoto("preview");

            var ApplyPicture = ShowPhoto("previewImag");

            //获取委托书照片的名称

            $.post("/BidTRecordManager/AddBidTInfo",
                {
                    "BidZNo": BidZNo, "companyCategory": companyCategory, "companyName": companyName,
                    "LegalPerson": LegalPerson, "ProjectPrincipal": ProjectPrincipal, "Tel": Tel, "DelegateLetter": DelegateLetter, "ApplyPicture": ApplyPicture
                }, function (result) {
                    alert(result);

                });
        }

controller中的代码:

        public string AddBidTInfo()
        {
            string returnMessage = "添加成功";
            var BidZNo = Request["BidZNo"];
            var companyType = Request["companyCategory"];
            var companyName = Request["companyName"];
            var LegalPerson = Request["LegalPerson"];
            var ProjectPrincipal = Request["ProjectPrincipal"];
            var Tel = Request["Tel"];
            var delegateLetter = Request["DelegateLetter"];
            var applyPicture = Request["ApplyPicture"];
            //var delegateLetter = Request["DelegateLetter"];
            BidTRecorderViewModel enBidTRecordVM = new BidTRecorderViewModel
            {
                BidUserId = Guid.NewGuid(),
                CompanyName = companyName,
                CompanyCategory = companyType,
                LegalPerson=LegalPerson,
                ProjectPrincipal = ProjectPrincipal,
                Tel = Tel,
                //委托书, 报名人照片, 存储方式
                // ApplyPicture
                DelegateLetter = delegateLetter,
                ApplyPicture = applyPicture

            };
            try
            {
                iBidTRecordManagerWCF.AddBidTInfo(enBidTRecordVM);
            }
            catch (Exception r)
            {

                throw;
            }

            // iBidTRecordManagerWCF.AddBidTInfo(enBidTRecordVM);
            return returnMessage;

        }

其实ajax的工作原理简单理解就是双向传值——我们首先从js传递参数到controller里面进行处理,然后自动接收

处理的结果。其实这就是ajax传值的原理。通过

<span style="font-family: KaiTi_GB2312;"> $.post("/BidTRecordManager/AddBidTInfo",</span>
                {
                    "BidZNo": BidZNo, "companyCategory": companyCategory, "companyName": companyName,
                    "LegalPerson": LegalPerson, "ProjectPrincipal": ProjectPrincipal, "Tel": Tel, "DelegateLetter": DelegateLetter, "ApplyPicture": ApplyPicture
                },

将参数传递到BidTRecordManagerController中的AddBidTinfo()这个方法中,在这个方法中用request接收传递的参

数进行处理,然后将结构自动传递到ajax中。

function (result) {
                    alert(result);

其中的result就是controller中处理的结果,这样我们就实现了双向传值的效果。

ajax的应用优势

ajax最大的优势就是浏览器和web服务器之间使用异步数据传输,这样就可使网页从服务器请求少量的信息,而不是

整个页面。ajax是因特网应用程序更小、更快、更友好。它是独立于web服务器软件的浏览器技术。

小结

在做项目的时候根本就不知道ajax到底是个什么东西,就是按照别人的代码来写,有一天在调错的时候突然就明白

了这个原理,然后就很顺手的写一些代码了,其实学习就是这么个过程,在开始就是不能明白其中的一些知识,然后

在某一天用到的时候也许会突然就明白了,所以我们不必为不会的知识苦恼,早晚有一天我们都会明白了,所以大胆

向前就是了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 11:10:12

ajax中使用总结的相关文章

ajax中网页传输(三)XML——下拉列表显示练习

XML:页面之间传递数据,跨平台传递 HTML:超文本标记语言,核心标签 XML的形势为 <xml version='1.0'> <Nation> <one> <code>n001</code> <name>汉族</name> </one> <two> <code>n002</code> <name>苗族</name> </two> <

ajax中网页传输(一)TEXT——带有删除功能的数据库表格显示练习

网页之间传输的三种方式:TEXT.JSON.XML. 本章将讲解带有TEXT形势的ajax网页传输 第一:body部分代码 <title>ajax中TEXT讲解并且带有删除功能的表格</title> <script src="jquery-2.0.0.min.js"></script> <style type="text/css"> .sc { width:70px; height:30px; backgr

jQuery源码分析系列(33) : AJAX中的前置过滤器和请求分发器

jQuery1.5以后,AJAX模块提供了三个新的方法用于管理.扩展AJAX请求,分别是: 1.前置过滤器 jQuery. ajaxPrefilter 2.请求分发器 jQuery. ajaxTransport, 3.类型转换器 ajaxConvert 源码结构: jQuery.extend({ /** * 前置过滤器 * @type {[type]} */ ajaxPrefilter: addToPrefiltersOrTransports(prefilters), /** * 请求分发器 *

fileupload控件在ajax中无法使用

google得到的方法: 1.http://geekswithblogs.net/ranganh/archive/2008/04/01/file-upload-in-updatepanel-asp.net-ajax.aspx There is a better way of doing it with Ajax Control Toolkit version 3.0.30930 which works with .NET 3.5 SP1 and Visual Studio 2008 SP1. 

ajax中的stasus错误详解

一.英文版解析 0: (Uninitialized) the send( ) method has not yet been invoked. 1: (Loading) the send( ) method has been invoked, request in progress. 2: (Loaded) the send( ) method has completed, entire response received. 3: (Interactive) the response is be

切记ajax中要带上AntiForgeryToken防止CSRF攻击

在程序项目中经常看到ajax post数据到服务器没有加上防伪标记,导致CSRF被攻击,下面小编通过本篇文章给大家介绍ajax中要带上AntiForgeryToken防止CSRF攻击,感兴趣的朋友一起学习吧 经常看到在项目中ajax post数据到服务器不加防伪标记,造成CSRF攻击 在Asp.net Mvc里加入防伪标记很简单在表单中加入Html.AntiForgeryToken()即可. Html.AntiForgeryToken()会生成一对加密的字符串,分别存放在Cookies 和 in

[IBM]掌握Ajax,Ajax中的高级请求和响应

掌握 Ajax, Ajax 中的高级请求和响应 http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro3/ dynaTrace Ajax:前端性能分析利器 http://www.ibm.com/developerwo

Ajax中的get和post请求

Ajax中我们经常用到get和post请求.那么什么时候用get请求,什么时候用post方式请求呢? 在做回答前我们首先要了解get和post的区别. 1. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址.用户看不到这个过程. 2. 对于get方式,服务器端用Request.QueryStrin

Ajax中的URL无法访问后台

解决方案:alert每一步的JS操作,最终打印出来异步函数执行时返回的状态码为404,由此可见是访问路径有问题,找不到页面,于是把访问页面路径改为绝对路径,则问题解决 分析:有时候相对路径有问题时,应该把它改为绝对路径, 在有些情况下,绝对路径才是王道啊 Ajax中的URL无法访问后台,布布扣,bubuko.com

记得ajax中要带上AntiForgeryToken防止CSRF攻击

经常看到在项目中ajax post数据到服务器不加防伪标记,造成CSRF攻击 在Asp.net Mvc里加入防伪标记很简单在表单中加入Html.AntiForgeryToken()即可. Html.AntiForgeryToken()会生成一对加密的字符串,分别存放在Cookies 和 input 中. 我们在ajax post中也带上AntiForgeryToken @model WebApplication1.Controllers.Person @{ ViewBag.Title = "In