2016-07-21 2 views
1

私は角2のアプリケーションで作業しています。このアプリケーションを実行するにはGoogle Earthを使用する必要があります。残念ながら、Google Earthは角型2について何も知らないChromeの多くの古いバージョンを使用しています。サーバ上でAngle 2アプリを実行し、既に実行された/起動した角度のブラウザを初期ブラウザに送るためのメカニズムが必要です。角のページの内容を取得するためのカール

Google Earthブラウザと通信するPHPサーバを作成することを考えています。したがって、本質的に、Google EarthはこのPHPサーバからのページを要求します。このPHPサーバーは、Angular2アプリケーションから対応するページを取得し、HTMLをGoogle Earthブラウザに戻すようにCURL要求を行います。

しかし、キャッチがあります。 Curlは角型アプリケーションからの応答を取得しますが、角型アプリケーションがブートストラップを完了するのを待たず、つまり、ui-viewがルータの内容で満たされる前に、CURLはその応答をレンダリングします。この場合、役に立たないでしょう。 HTMLバック。

私はCURLレスポンスを確認するためにこのリンクを使用しました:http://onlinecurl.com/ あなたは角度サイトを選択し、このリンクを使用して返信します。

カールが角張ったブートストラップまで待ってからHTMLを返す方法はありますか?またはこの問題を解決する他の方法がありますか?

私は角度のあるユニバーサルを試しましたが、実装が複雑すぎるようで、この問題を解決するのに短時間です。

すべてのソリューションを歓迎します。前もって感謝します。

+0

いくつかのコードを試していますか? –

+0

アプリのプラットフォームとしてAngularを選択する前に、Google Earthのブラウザを使用する必要があると思っていたように思いますか? Curlは静的ページを取得するだけです。それはブラウザのようには動作しません、それはAngularと同様のフレームワークが依存するjavascriptを実行しません。サーバーから最初の応答を取得するだけです。 Angular(および他のスクリプト)は実行されていないため、角を「待っている」わけではありません。実行するブラウザ環境がないためです。 – ADyson

+0

PHPとカールは助けになりません。この問題を解決する方法は、Phantomjsまたは[Nightmare](https://github.com/segmentio/nightmare)でページをリクエストすることです。私は、これらのソリューションがアンギュラユニバーサルよりも複雑であるとは言えません。 – estus

答えて

0

角は、最大セキュリティモードのSemantic Web,Tor、およびレンダリングWebブラウザの他の種類の互換性を欠いています。ですから、Angularを避けることをお勧めします。それがオプションではない場合は、ページあたり1つのhtml.gzファイルを提供する、サイトのより高速で小型の互換性のあるミラーを作成します。 "Angular Universal"はwindow/document/jquery/etcをサポートしておらず、phantomjs & nightmareは古いバグコードを使用しているため、Selenium IDEのようなものを使用してください。 A 2,361.07 KB example角度のあるページを9.7 KBのフラットファイルに縮小できます。もう1つの選択肢は、データのみが必要な場合で、本文HTMLを持ち、取得するXHR JSONファイルを使用するか、見つけることができる場合です。上記の例のcurl -sL 'https://api.ontario.ca/api/drupal/page%2Fjobs-and-prosperity-fund-new-economy-stream?fields=body' > body.json

関連する問題