AngularUniversal-如果URL包含不安全字符,Transfer状态为空-重复XHR调用
创始人
2024-10-29 20:30:55
0

当使用Angular Universal时,如果URL包含不安全字符,可能会遇到Transfer状态为空的问题。同时,由于XHR调用的重复触发,这会导致性能问题,降低应用程序的整体速度。

解决这个问题的方法是使用DomSanitizer服务来深入清理URL,并确保其安全性。以下是示例代码:

import { Component, OnInit } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { HttpClient } from '@angular/common/http'; import { ActivatedRoute } from '@angular/router'; import { TransferState, makeStateKey } from '@angular/platform-browser'; import { tap, map, filter } from 'rxjs/operators';

@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) export class AppComponent implements OnInit {

constructor( private sanitizer: DomSanitizer, private http: HttpClient, private route: ActivatedRoute, private state: TransferState ) {}

ngOnInit() { const url = this.route.snapshot['_routerState'].url; const safeUrl = this.sanitizer.bypassSecurityTrustUrl(url);

const key = makeStateKey('data-' + safeUrl);
const urlData = this.state.get(key, null as any);
if (urlData !== null) {
  // 数据已经缓存了!
  console.log('From Cache');
  console.log(urlData);
  return;
}

this.http.get(safeUrl).pipe(
  filter(Boolean),
  map(res => res as any),
  map(res => {
    const data = res.data;
    this.state.set(key, data as any);
    return data;
  })
).subscribe(
  data => {
    console.log('From API', data);
  }
);

}

}

在这个示例中,我们使用了DomSanitizer服务来清理URL,并使用缓存的TransferState来避免重复的XHR调用,提高性能。

请注意,这只是一个示例代码,实际用法可能因

相关内容

热门资讯

先前有辅助"微乐小程... 先前有辅助"微乐小程序自建房辅助ios"开挂(透视)辅助插件(新2026教程有挂教学);无需打开直接...
最初有开挂"广西老友... 最初有开挂"广西老友玩手游辅助"开挂(透视)辅助神器(详细教程有挂分享)1、下载安装好广西老友玩手游...
从来有辅助"wepo... 从来有辅助"wepokerplus开挂"开挂(透视)辅助软件(系统教程证实有挂)您好:wepoker...
原先有开挂"友友联盟... 原先有开挂"友友联盟辅助器"开挂(透视)辅助工具(AI教程有挂规律) 了解更多开挂安装加(13670...
本来有开挂"海豹3+... 本来有开挂"海豹3+1辅助器"开挂(透视)辅助平台(必胜教程有挂技巧);亲,海豹3+1辅助器这款游戏...
原生有辅助"闲来软件... 原生有辅助"闲来软件辅助"开挂(透视)辅助透视(扑克教程有挂助手)1、下载安装好闲来软件辅助,进入游...
素来有辅助"欢聚水鱼... 素来有辅助"欢聚水鱼透视器"开挂(透视)辅助软件(线上教程有挂技术)《详细加薇136704302咨询...
固有有开挂"aapo... aapoker透视脚本下载是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户...
原本有辅助"沧海十三... 沧海十三水辅助器开挂教程视频分享装挂详细步骤在当今的网络游戏中,沧海十三水辅助器作为一种经典的娱乐方...
原生有开挂"凑一桌游... 原生有开挂"凑一桌游戏插件"开挂(透视)辅助插件(爆料教程果真有挂) >>您好:软件加薇136704...