2017-06-08 13 views
0

小説を書いている友人のためのウェブサイトを構築しています。ページ分割表示のために長いテキストを分割する

私はAngular 2のフロントエンドアプリとJavaのバックエンドを持っています(これは私がよく知っているツールなので)。 Angularアプリのバックオフィスを使用すると、チャプタのテキストを追加することができます。チャプタのテキストはバックエンドに送信され、DBに保存されます。その後、Angularの前面がバックエンドを呼び出してチャプタを取得し、ブックのようなディスプレイに表示する必要があります。

私の問題は、チャプタのテキストをページに分けて表示する方法です。私はバックオフィスを変更して、ユーザーにページごとにテキストページを追加させることができます。私は、ページ区切りを示すために、テキストに特定のマーカーを置くようにユーザーに頼むことができます。しかし、私はユーザーのためにできるだけ透明なプロセスが好きです。

私はバックエンドのテキストを分割して解決策を探しました。私は1行にいくつの文字があるのか​​見積もり、ページ上に何行あるのかを見積もって、それに応じてテキストを切り詰めました(いくつかの調整を加えて、タグが入ったHTMLテキストです)。 しかし、表示インターフェイスのサイズに関係なく、ページのサイズを選択するので、非常に厳しいアプローチのように感じます。

より良いアプローチがあるのであれば、私は思ったんだけど: - 異なる分割アルゴリズム - ツールのフロント側にそれを を分割せずに私のテキストを表示するには - 何か他のもの

誰もが直面しなければならなかったん同様の問題?

おかげ

+0

私は角度にはあまりよくありませんが、私があなたの場合は、いくつかのアルゴリズムは、ページのサイズを決定する。あなたのバックエンドは、フォントのフロントエンドサイズから受け取ってから、ページのサイズを計算する必要があります。将来のリクエストの1つがフロントエンドでのフォントサイズの変更をサポートすることになると確信しています。 – nick79

答えて

1

あなたはページ長のセンスがないのサーバー側でそのアクションを実行しています。

より良いアプローチは、バックエンドからフロントエンドまで完全な章を得ることです。これは、以前の情報に基づいて章のページ数

を - ページサイズ に基づいて行の数 - ページサイズ に基づいて行あたりの文字数 - :と計算しますフロントエンド機能を持っていますあなたの完全なバックエンドのものよりも良い方法です。

ただし、これは反応的なアプローチではありません。

応答性のある回答に興味があり、必要がありますか?

「はい」の場合は;上記の値を再計算し、あなたのページを生成するためにページの長さ/高さに時計を追加することができます

+0

私は本当に反応的なアプローチが必要です。だから私はおそらくあなたのソリューションを実装する必要があります。 問題は:私はフロントサイドをするのに慣れていないので、バックエンドでやったのです。 しかし、章の分割はフロントエンドの責任であるべきです。すでに解決策、方法、ツールがあるかどうか疑問に思っていました。 – user3845231

+0

あなたのレスポンシブアプローチを構築することが困難な場合は、あなたのコードと困難を投稿するのをためらってはいけません。その間;私の返信があなたを助けてくれたなら、 upvoteに躊躇しないでください;) – aorfevre