JavaScriptでメモアプリを作成しようとしています。
こちらのブログを拝見したところ、JavaScriptでは文字列を最大512MBまでしか扱えないそうですが、
この文字数を超えるメモを作成しようとするとエラーがでてしまうということでしょうか?
出来る限りアプリの品質を落とさないために、
以下のいずれかの答えをご存知の方がいらっしゃいましたら、教えていただきたいです。
####質問1.
メモアプリに文字数制限があるのは良くないと思うので、
最大長を超えるデータを扱う方法はありませんか?
####質問2.
対策方法が存在しない or 対策しても最大長がある場合、
最大長を超えたら突然エラーがでて動かなくなるというのは良くないと思うので、
そうならない方法はありませんか?
####質問3.
対策方法が存在しない or 対策しても最大長がある場合、
利用者から最大文字数について問われた際に回答不可という返事だと無責任な気がするのですが、
なんと答えるべきでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答8件
0
ベストアンサー
メモアプリに文字数制限があるのは良くないと思うので、
最大長を超えるデータを扱う方法はありませんか?
まず512MBもの巨大なデータを扱うとなると、確実に動作が重くなります。
最も一般的に普及しているメモリ容量は4GBです。(Avast PC Trends Report 2019)
そのような中で、ただでさえメモリ馬鹿食いのブラウザが単純計算512MBのメモリを追加で使用するとなると、、、恐ろしいです。
個人的には512MBよりもっと前で制限をかけてしまった方がいいと思います。
投稿2020/08/11 01:29
編集2020/08/11 01:36総合スコア10434
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/11 01:35
2020/08/11 01:41

0
この文字数を超えるメモを作成しようとするとエラーがでてしまうということでしょうか?
試してみては。
ただ、512MBの文字列用意しようと思ったら結構大変です。その文字数を知ってから疑問に思ったほうが良いです(私はここであえて計算しませんが)
メモアプリに文字数制限があるのは良くない
むしろ、完全無制限なのは保存先に負担が大きくなります。資源は有限です。
MySQLで長い文字列=TEXT型と安易に考えてはいけないという記事もあります。
メモに何万字も必要か?
考えてみてください。
teratailも投稿は1万字が最大になっています。それは、本来質問に必要なコードを加味するとそこまで膨大になることはないという点からです。
(質問するときのヒントにも「多すぎず少なすぎず」の旨が書かれています)
最大長を超えたら突然エラーがでて動かなくなるというのは良くないと思うので、
そのためのバリデーションです。
利用者から最大文字数について問われた際に回答不可という返事だと無責任な気がするのですが、
なんと答えるべきでしょうか?
そのためのガイドラインです。
「ひとつのメモに登録できるのは最大何文字です」と明記しておけば、それが仕様となります。
なんなら、「JavaScriptでは512MBが最大で」と書いても良いでしょう。
「規定字数を超えそうであればメモを分割して登録してください」と添えておけば十分です。
では、まず、制作者であるあなたが、512MBがどれほどの文字数になるか知るところから。
投稿2020/08/11 01:19
総合スコア80888
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
逆に、Webに限らず、一つのメモに、
2億文字を超えれるアプリケーションが存在するかどうかですよね。
テキストエディタでも、さすがに、一ファイルでそれは難しいのでは。
それでも文字数制限を突破したいのならば、変数で分割しておき、
スクロール時に、その次の文字の出現位置になればロード・表示させる、とかどうでしょうか。
投稿2020/08/11 01:11
総合スコア9555
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
利用者から最大文字数について問われた際に回答不可という返事だと無責任な気がするのですが
Webブラウザごとに違うので、そういうものです。
投稿2020/08/11 01:08
総合スコア146530
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
JavaScript で作ろうとしている時点で制限は探したほうが良いと思いますね。
ユーザの操作(たとえば、カーソル1字動かす)に対して
- 何msec までなら待たせてよいのか
- そのためには上限をどうすべきか
- これを実現できる フロントエンド実装はあるのか
を考えるべきだと思います。
郵便番号データで公開されているデータが丁度、テキストですので、試すのに良さそうです。
- ダウンロードした ken_all.zipを展開。約10MB(Shift_JIS:マルチバイト文字2Byte)
- 文字コード変換ソフト等を利用して UTF-8 にする(約3倍のサイズを覚悟する)
- HTML(
<Textarea>
)+JavaScript で簡単なロジックを作って操作してみる。
JavaScriptは思いの外「遅い」ので、エンドユーザが快適に動かせる上限を優先すべきと思います。
投稿2020/08/11 02:02
総合スコア5434
0
べつに編集データをひとつのString変数に持たせなければならないわけではないと思いますが
投稿2020/08/11 01:03
総合スコア88163
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。