2017-10-03 11 views
0

アンギュラユニバーサルアプリは、初期コードに対してコンテンツを2回リロードしますが、これを防ぐ方法はありますか?アンギュラユニバーサルリロード2回

私は初期のコードをngOnInit()に入れて、同じ結果を得ています。

+0

どの角度の角度を使用していますか?あなたのコンポーネントのpackage.jsonといくつかの要素を投稿しようとしてください – rex

+0

https://stackoverflow.com/questions/46471986/angular-universal-how-to-trigger-manually-the-state-change-from-server-サイド? – Moema

答えて

0

Angular Universalは、プロジェクトのjsをサーバー側で事前にプリレンダリングし、domがレンダリングされると、フェッチされたデータに関係なく、クライアント側に切り替えます。データやAPIを入手した後で再度呼び出さないようにしてください。これは、2回目のリロードを停止するのに役立ちます。

+0

2回目にAPI呼び出しを避ける方法を提案しますか?サーバーからブラウザに状態を転送する方法はありますか? – Starscream

0

クエリやコードをサーバー側でのみ実行し、フロントエンド側では「2回でない」とは考えない場合は、プラットフォームをチェックしてコードの実行場所を確認することができます

import {Injectable, PLATFORM_ID} from '@angular/core'; 
import {isPlatformServer} from '@angular/common'; 

@Injectable() 
export class Something { 

    constructor(@Inject(PLATFORM_ID) private platformId: Object) { 
    } 

    getSomething() { 
    if (isPlatformServer(this.platformId)) { 
     // Here we execute the code on the server side only 
    } else if (isPlatformServer(this.platformId)) { 
     // Here we execute the code on the browser side only 
    } 
    } 
}