Php 当SPA中的路由更改时,http请求会发生什么变化

Php 当SPA中的路由更改时,http请求会发生什么变化,php,node.js,angular,reactjs,single-page-application,Php,Node.js,Angular,Reactjs,Single Page Application,让我们假设一个请求正在加载,页面(组件)会更改正在加载的请求的情况 请考虑使用前端SPA(单页应用程序),如“强>角”、“JS”、“角”、“反应< /强”等,…& & 而后端将发生什么情况?一旦SPA发出请求,它将保持打开状态,直到获得后端响应或连接终止。终止可以通过多种方式进行,例如: 页面重新加载 使用clientreq对象手动终止 根据您使用的请求库,有一些选项。但正如您所说,它是一个单页应用程序,您可以卸载该页面或组件 例如: 使用react,生命周期方法之一是ComponentWi

让我们假设一个请求正在加载,页面(组件)会更改正在加载的请求的情况

请考虑使用<强>前端SPA<强>(单页应用程序),如“强>角”、“JS”、“角”、“反应< /强”等,…& &


后端将发生什么情况?

一旦SPA发出请求,它将保持打开状态,直到获得后端响应或连接终止。终止可以通过多种方式进行,例如:

  • 页面重新加载
  • 使用clientreq对象手动终止

根据您使用的请求库,有一些选项。但正如您所说,它是一个单页应用程序,您可以卸载该页面或组件

例如:

使用react,生命周期方法之一是ComponentWillUnmount,假设您在ComponentDidMount中发送请求,并且在请求完成之前用户离开页面。您可以在ComponentWillUnmount中取消请求

您可以使用几乎所有的http库取消请求,尤其是rxjs的redux obseravble是一个非常好的选择

import { ajax } from 'rxjs/ajax';

const fetchUserEpic = action$ => action$.pipe(
  ofType(FETCH_USER),
  mergeMap(action => ajax.getJSON(`/api/users/${action.payload}`).pipe(
    map(response => fetchUserFulfilled(response)),
    takeUntil(action$.pipe(
      ofType(FETCH_USER_CANCELLED)
    ))
  ))
);
当用户按下按钮或加载页面时,您可以启动一个操作来获取用户数据,直到它完成或启动一个“获取用户”取消的操作,例如,在componentWillUnmount中

我希望能帮助你:)