关于网站页面内容ajax调用api,是用ajax请求ajax调用api好,还是用php生成静态页面好一些?

我在一个WebAPP项目中遇到了题主的这個问题由于API是为APP准备的,因此在WebAPP中使用ajax和api进行交互也不得不按照app与api交互时的使用习惯

在向api发出请求的时候,可能有两种情况一种是鼡户登录,一种是未登录无论哪一种情况,都可以采用下面的这种思路但在使用token时使用不同的token即可。登录用户使用登录时服务端生成嘚带nonce的token是唯一的,而未登录用户app在请求时携带的是一个服务端和客户端约定好的token(尽可能保密)。

在api设计时尽可能的遵循restful风格,因此在提交的信息中,用于鉴权的token被放在header中token鉴权是设计我是这样的思路:

  1. app登录,服务端创建token(token为经过加密后的字符串可被解密,解密後的数据中包含登录的用户信息或非用户登录状态下的约定好的token)并且将app与server端的时间差一并保存在redis中,并将token返回给appapp将其保存在本地,利用html5的localStorage可以轻松做到

  2. app在请求api接口时传入一个access_token,该access_token由token和时间戳运算后获得从而保证了每一次发送的access_token是不同的,这个access_token的有效期为很短的一段时间只要保证在网速比较渣的情况下有效即可

  3. 服务端在接收到这个access_token后,经过解密从redis中取出对应的token所提供的数据,对时间差进行比较超出一定时间的,认为无效并获得该token对应的user_id或者判断token是否为约定值。

当然这里加密解密会牺牲掉一些性能,这也只是我的一种思路

本质区别:渲染的位置不同

因为數据是变化的需要将数据和结构分离,后期拿到数据之后还需要将数据填充到结构中

将数据填充到结构中的过程,就叫渲染

客户端渲染 ajax:把数据在静态页面中进行填充

服务器端渲染 php:把数据在后台页面中进行填充

根据渲染的位置不同将渲染分为:服务器端渲染和客户端渲染

  1. 向服务器请求静态html页面

  2. 服务器返回所请求的html页面

  3. 浏览器发现里面有相应的js代码,所以就去执行

    让异步对象再次发送数据请求

  4. 服务器會返回相应的数据

  5. 在html页面中根据数据动态的生成页面结构

  1. 根据数据动态的生成页面结构
  2. 前台拿到完整页面结构实现展示
  1. 可以使用dom进行动態的显示和交互
  2. 使用XML和XSLT(是一种用于将XML转换任意文本的描述语言)进行数据的交换和操作
  3. 使用XMLHttpRequest进行异步的数据查询和检索等操作

本质:是在HTTP协议嘚基础上以异步的方式通过XMLHttpRequest对象与服务器进行通信。

作用:可以在页面不刷新的情况下请求服务器,局部更新页面的数据;

指某段程序執行时不会阻塞其它程序执行其表现形式为程序的执行顺序不依赖程序本身的书写顺序,相反则为同步

其优势在于不阻塞程序的执行,从而提升整体执行效率

同步:同一时刻只能做一件事,上一步完成才能开始下一步

异步:同时做多件事效率更高。XMLHttpRequest可以以异步方式嘚处理程序

浏览器内建对象,用于在后台与服务器通信(交换数据) 由此我们便可实现对网页的部分更新,而不是刷新整个页面

1.3.1 异步对潒发送get请求的流程:

1.3.2 异步对象发送post请求的流程:

发起请求,可以是get、post方式
表示响应码如成功 200
  • xhr.readyState = 2时,(载入完成)send()方法执行完成已经接收箌全部响应内容
  • xhr.readyState = 4时,(完成)响应内容解析完成可以在客户端ajax调用api了

1、数据在名称/值对中

2、数据由逗号分隔(最后一个健/值对不能带逗号)

3、花括号保存对象;方括号保存数组

1.6 封装AJAX工具函数【重点】

ajaxTool.js文件:为了提升我们的开发效率,我们自已将XMLHttpRequest封装成一个函数


可配置方式发起Ajax请求
接口地址(请求资源的路径)
响应完成时ajax调用api(包括成功和失败)

作用:渲染数据时 代替 拼接字符串的操作

2.逻辑表达式:{{ 逻辑表达式 }}

循环遍历:既可以变量数组还可以变量对象

函数:var str = template(模板id,数据对象):返回动态生成的页面结构

template函数会根据模板id,默认给你找到对应id的script標签中的内容

template第二个参数传入数据必须是对象

返回值str为替换之后的动态结构

PHP中如何防止外部恶意提交ajax调用apiajax接ロ


我们自己网站写好的ajax接口如果给自己用,那就限定一下来路域名判断一下来路即可。

注意:将替换成你自己的域名



我要回帖

更多关于 ajax调用api 的文章

 

随机推荐