发表于: 2019-09-29 19:14:32

1 648


今天完成的事情

学习了AJAX

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容

AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。

Google Suggest 使用 AJAX 创造出动态性极强的 web 界面:当您在谷歌的搜索框输入关键字时,JavaScript 会把这些字符发送到服务器,然后服务器会返回一个搜索建议的列表。


今天遇到的问题

nginx反向代理解决跨域那里,对各种概念还不太理解


今天的收获

知道了AJAX使用原生js以及JQuery是如何请求数据的

js中的ajax:

var request;

if(window.XMLHttpRequest){

  request=new XMLHttpRequest(); //IE7+,...

}else{

  request=new ActiveXObject("Microsoft.XMLHTTP"); //IE6,IE5

用XHR发送请求:

open(method,url,async) 调用XHR对象,async表示同步还是异步,默认为true(异步);

send(String)   发送请求。

request.open("POST","create.php",true);

request.setRequestHeader("Content-type","application/x-www-form-urlencoded");  //必须写在open和send中间

request.send("name=王大锤&sex=男");

一、xhr取得响应

1、responseText:获得字符串形式的相应数据。

2、responsXML:获得XML形式的相应数据。

3、status和statusText:以数字和文本形式返回http状态码。

4、getAllResponseHeader():获取所有的响应报头。

5、getResponseHeader():查询响应中的某个字段的值。

6、readyState属性:响应返回成功的时候得到通知。

(1)0:请求未初始化,open还没有调用。

(2)1:服务器连接已建立,open已经调用了。

(3)2:请求已经接收,也就是接收到头信息了。

(4)3:请求处理中,也就是接收到响应主体了。

(5)4:请求已完成,且响应已就绪,也就是响应完成了。

二、典型的xhr建立ajax的过程。(涵盖了ajax的大部分内容)

1、new一个xhr对象。

2、调用xhr对象的open方法。

3、send一些数据。

4、对服务器的响应过程进行监听,来知道服务器是否正确得做出了响应,接着就可以做一些事情。比如获取服务器响应的内容,在页面上进行呈现。


jquery中的ajax

$.ajax({

        type:"GET",

        url:"service.php?number="+$("#keyword").val(),

        dataType:"json", 预期服务器返回数据的类型

        success:function(data){

           if(data.success){

               $("searchResult").html(data.msg);

           }else{

               $("#searchResult").html("出现错误:" + data.msg);

           }

        },

        error:function(jqXHR){

           aler("发生错误:"+ jqXHR.status);

        }

});


get/post请求的区别:

1. GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。当然在Ajax请求中,这种区别对用户是不可见的。

2. 首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。注意这是限制是整个URL长度,而不仅仅是你的参数值数据长度。

3. GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等。在某种情况下,GET方式会带来严重的安全问题。而POST方式相对来说就可以避免这些问题。

get请求和post请求在服务器端的区别:

4. 在客户端使用get请求时,服务器端使用Request.QueryString来获取参数,而客户端使用post请求时,服务器端使用Request.Form来获取参数.

HTTP标准包含这两种方法是为了达到不同的目的。POST用于创建资源,资源的内容会被编入HTTP请示的内容中。例如,处理订货表单、在数据库中加入新数据行等。

当请求无副作用时(如进行搜索),便可使用GET方法;当请求有副作用时(如添加数据行),则用POST方法。一个比较实际的问题是:GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对URL长度的限制。

然而,在以下情况中,请使用 POST 请求:

无法使用缓存文件(更新服务器上的文件或数据库)

向服务器发送大量数据(POST 没有数据量限制)

发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠


明天的计划

1.先完成css页面

2.尝试使用原生js以及jQuery完成任务5


返回列表 返回列表
评论

    分享到