Ajax无刷新

Posted in-the-game-of-thrones

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax无刷新相关的知识,希望对你有一定的参考价值。

Ajax 是什么?

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

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

  AJAX 是在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术。

Ajax 有什么作用?

  Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器 进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下, 对网页的某部分进行更新。 传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。 Ajax 可使因特网应用程序更小、更快,更友好

原生的 Ajax 开发步骤:

 

长整形标准 http 状态码,定义如下:

  1. Number Description (描述) 100 Continue
  2. 101 Switching protocols
  3. 200 OK(正确返回)
  4. 201 Created
  5. 202 Accepted
  6. 203 Non-Authoritative Information
  7. 204 No Content
  8. 205 Reset Content
  9. 206 Partial Content
  10. 300 Multiple Choices
  11. 301 Moved Permanently
  12. 302 Found
  13. 303 See Other
  14. 304 Not Modified
  15. 305 Use Proxy
  16. 307 Temporary Redirect
  17. 400 Bad Request
  18. 401 Unauthorized
  19. 402 Payment Required
  20. 403 Forbidden
  21. 404 Not Found(找不到页面请求)
  22. 405 Method Not Allowed
  23. 406 Not Acceptable
  24. 407 Proxy Authentication Required
  25. 408 Request Timeout
  26. 409 Conflict
  27. 410 Gone
  28. 411 Length Required
  29. 412 Precondition Failed
  30. 413 Request Entity Too Large
  31. 414 Request-URI Too Long
  32. 415 Unsupported Media Type
  33. 416 Requested Range Not Suitable
  34. 417 Expectation Failed
  35. 500 Internal Server Error(服务器内部错误)
  36. 501 Not Implemented
  37. 502 Bad Gateway
  38. 503 Service Unavailable
  39. 504 Gateway Timeout
  40. 505 HTTP Version Not Supported

readyState 状态值

  1. 0 (未初始化) 对象已建立,但是尚未初始化(尚未调用 open 方法)
  2. 1 (初始化) 对象已建立,尚未调用 send 方法
  3. 2 (发送数据) send 方法已调用,但是当前的状态及 http 头未知
  4. 3 (数据传送中) 已接收部分数据,因为响应及 http 头不全,这时通过 responseBody 和 responseText 获取部分数据会出现错误,
  5. 4 (完成) 数据接收完毕,此时可以通过通过 responseBody 和 responseText 获取完整的回应数据

HTTP 协议定义了很多与服务器交互的方法,最基本的有 4 种,分别是 GET,POST,PUT,DELETE. 一个 URL 地址用于描述一个网络上的资源,而 HTTP 中的 GET, POST, PUT,DELETE 就对应着对这个资源的查,改, 增,删 4 个操作。 我们最常见的(也是我们关心的)就是 GET 和 POST 了。 GET 一般用于获取/查询资源信息,而 POST 一般用于更新资源信息

  1. //如果是 post 请求,在发送请求前需要做以下处理:

     if("POST"==option.method) xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ;

  2. //如果是 get 请求,没有报文头写 null:如,xmlhttp.send(null);

 GET 和 POST 的区别:

  1. GET 提交的数据会放在 URL 之后,以?分割 URL 和传输数据,参数之间以&相连,如 /checkUserName?name=test1&id=123456.

   POST 方法是把提交的数据放在 HTTP 包的 Body 中. xmlhttp.send(“uname=”+v);

  2. GET 提交的数据大小有限制(因为浏览器对 URL 的长度有限制,本身并没有限制),而 POST 方法提 交的数据没有限制。

  3. GET 方式提交数据,会带来安全问题,比如一个登录页面,通过 GET 方式提交数据时,用户名和密码将 出现在 URL 上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号 和密码。

技术图片技术图片技术图片技术图片技术图片技术图片技术图片技术图片

以上是关于Ajax无刷新的主要内容,如果未能解决你的问题,请参考以下文章

Ajax.BeginForm()实现ajax无刷新提交

Ajax无刷新提交

js界面刷新&Django使用Ajax实现页面无刷新评论回复功能

ajax无刷新表单提交

通过Ajax实现无刷新分页

Django使用Ajax实现页面无刷新评论回复功能