代码之家  ›  专栏  ›  技术社区  ›  Emad Fani

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

  •  1
  • Emad Fani  · 技术社区  · 6 年前

    让我们想象一下 请求正在加载 页面(组件)会改变正在加载的请求发生了什么变化?

    请考虑它是在使用的情况下 前端SPA (单页应用程序)例如 角度js,角度,反应 以及其他…&;

    接下来会发生什么 后端 ?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Dmitriy Fialkovskiy    6 年前

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

    例子:

    使用react,生命周期方法之一是componentwillunmount,假设您在componentdidmount中发送了一个请求,并且在请求完成之前,用户离开了页面。您可以取消请求 组件将卸载 .

    您可以使用几乎所有的HTTP库取消请求,特别是RXJS的RuDux ObSeravle是一个非常好的选择。

    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)
        ))
      ))
    );
    

    当用户按下一个按钮或加载页面时,可以启动一个动作来获取用户数据,直到它结束或启动FutChuxUsRyL取消的动作,例如,在组件WununSt装中。

    我希望能帮助你:)

        2
  •  1
  •   Easwar    6 年前

    从SPA启动请求后,它将保持打开状态,直到从后端获得响应或连接终止。终止可以以多种方式发生,例如:

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