JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net

1デフォルトの名無しさん
垢版 |
2015/12/07(月) 07:26:33.87ID:NYLGCW0V
実際にJavaScriptを書いている人の情報交換所です。
プログラミング既習者専用です。初心者の方はご遠慮下さい。
玄人の方、歓迎致します。
2016/08/24(水) 00:44:52.82ID:dKh15413
>>406
お前のコードこそ、特定のプラットフォームか外出てるじゃん。
どう使いにくいのかが分かれば良いんだが。
もう老人であたらしいこと覚えられないならご愁傷様。
2016/08/24(水) 00:48:32.19ID:1m5/CfUP
>>410
トランザクションがROLLBACK単位とか言うか
適宜コミットして、setTimeoutで遅延させてつかえよ。
ボンクラすぎるだろ。

タイミングも合ってるよ。

脳みそ腐ってないならば、ぜんコード上げてみろよ。見てやるから。
2016/08/24(水) 00:52:22.97ID:7vNot/FK
IndexedDBが小慣れていないと言われてるのは周知の事実。
が、機能は揃っているので上で言われてるように
大抵皆ライブラリを書いたり、使ったりして問題なく過ごしている。

君のここまでの書き込みは全然建設的じゃないし、
ほんとにバグがあるのか、もしくは君の方がが小慣れていないのかが分からない。
結果、ただの愚痴にしか聞こえずそれに対して何も言えることはない。
せめて再現するための最低限のコードを載せてくれ。

あと10万ダウンロードはやめとけ。ZIPなどに圧縮すればいい。
もしくはもう一般WebAPIだけで作るの諦めろ。
一般公開するかは知らんが、それだけの機能なら
拡張機能もしくはブラウザアプリにしてインストール必須にしても構わないだろう。
2016/08/24(水) 02:09:31.50ID:fG60fvYz
>>413
> ほんとにバグがあるのか、もしくは君の方がが小慣れていないのかが分からない。
これはその通り。当初の>>358は間違いだったからね。
ただ仕様は大体理解したので、多分>>394>>410はバグだ。

とはいえ切り分けはしない。
最新版が使えない状況で切り分けて報告する意味はないので無駄だから。
(最新版では既に治っているかもしれない)
俺については「バグがある」という認識で使うか、使うのを止めるかでしかない。
つまり他の方法も試して一番マシな方法を使うだけ。
ちなみにchromiumに対してバグ報告もしたことあるし、受け付けられてもいるよ。
ただそれをやるにしてもここでやる意味はない。直接報告すればいいだけ。

コードはここには上げない。
コピペすればいいだけのコードすら協力してくれないお前らに対して期待はしていないし、(>>270,279)
話を聞く限りお前らの腕前/デバッグ出来る範囲を完全に超えている。
コードを上げてもお前らでは何も出来ないよ。
いずれにしても既に公開はしているから、勝手に探せばいい。

100kダウンロードはその話だと試したわけではないんだろ?だったら俺が試すだけだよ。
ZIP化してもいいが取り扱いが面倒になるだけだから、いければ生ファイルで行く。

> 拡張機能もしくはブラウザアプリにしてインストール必須にしても構わないだろう。
これは何が違うんだ?調べた限りでは大差ないようだったが、違うのか?
なお今回欲しい機能は以下。
・ローカルファイルからのユーザ指定無しでの読み込み
・ダウンロード時のフォルダ指定(階層化したフォルダに対してのダウンロード先指定)
これらが出来るのなら乗り換えを検討する。
ちなみに今のところGreaseMonkeyで不自由していない。
ただ、GM専用機能も使ってないので、乗り換えは出来る。
2016/08/24(水) 02:10:28.07ID:fG60fvYz
> 君のここまでの書き込みは全然建設的じゃないし、(中略)
> 結果、ただの愚痴にしか聞こえずそれに対して何も言えることはない。
上記の通り、俺は相談以上の期待をお前らに対してはしていない。
だから気に入らなければレスくれなくていい。
(上記経験により俺もそういう距離感で行くことにしたから)
そちらも分かるように、どこまでの情報があれば何を回答出来るかはこちらも分かっている。
その上で書いているのだから、それについては無理という件については無視でいい。
馬鹿共は置き去りにしないとスレのレベルが上がらない。

その上でバグ確認に協力してくれるというのなら、
それは申し訳ないが今回はそこに踏み込む気はない。
理由は上記どおり、最新版でないと意味無いから。
そちらが既にバグに当たらない記述のライブラリなりを持っているのならそれで問題ないわけだし。

心配せずともchromeなんてバグだらけだぞ。
こなれていないところに踏み込んだらすぐに遭遇する。
それはそちらも知っていると思うが。

君らは気に入らないかもしれないが、俺は情報をくれた奴には感謝している。
ただ君らが「持ちつ持たれつ」という感覚を持ち合わせていないことも学習したから、
君らに大して期待もしていない。だから再度言うが、気に入らなければ無視でいい。
(というかこれまでの俺が甘かっただけで、本来は君らのスタンスの方がここには向いている)
2016/08/24(水) 02:47:00.24ID:fG60fvYz
>>413
> IndexedDBが小慣れていないと言われてるのは周知の事実。
ちなみに俺はJavaScript屋ではないから、
こういう、「周知の事実」ってのは知らない情報だ。
だから君にとっては大したことなくても、俺にとっては助かっている。

その「周知の事実」にアクセス出来る人に対してこちらから提供出来る情報はほぼ無い。
せいぜい遭遇した事実/外部目線で見た感想を垂れ流すことくらいだ。
で、これを既にやっているわけだが、
結果、愚痴にしか見えないというのなら、それはそれで仕方ない。
残念ながら、こちらが「情報交換」として提供出来るのはこの程度でしかないんだよ。
何が君らにとって有意義な情報かもこちらには分からない。
だからとりあえず垂れ流すのみ。
2016/08/24(水) 07:24:26.62ID:dKh15413
何様かわからんな。
出せる情報もなく、教えてくれって虫が良すぎるだろ。
Qiitaにでも行ってくれば?
2016/08/24(水) 08:19:51.08ID:u65p5RKL
俺はindexedDBを商用製品に普通に使ってる(しかも、ローカルへのキャッシュとして)から、ぶっちゃけどんなドヤされても、こいつの書いた実装が悪いんだろうなとしか思えん。
トランザクションで500件を超えるって、そんなデカいアトミックな操作が思いつかんレベル。
ファイルの取得であれば、保存できればそれでワントランザクションだろ。
関数越えてトランザクション持って回って、どっかで非同期な呼び出しがあってカーソル見失った瞬間にトランザクション失敗してるんじゃねえの?
とかそんな感想。
ある一定バージョンのファイルセットが取得できるまでをトランザクションと見なすなら、バージョンごとに仮データとして保存するトランザクションと、
古いセットを削除して、仮データを有効データに更新するトランザクションの二本で充分でしょ。

なんで、自分より相手方の方が馬鹿に違いない、と思えるのかわからん。
俺もコミッタだけど、その発想でプルリク投げた事は無いわ。
2016/08/24(水) 08:36:10.31ID:u65p5RKL
ダウンロードリンク、の代わりにindexedDB使う発想がわからん。
何がどこにどうダウンロードされるんだろう。
それはローカルに持ってたらどう便利なんだろう≒ローカルにあれば二度と押さないボタンなんだろうか?

なんか(アーカイブってのが何のアーカイブかはわからんが)ウェブから取得させるときに、二回目以降はそのクライアントのデータを使わせて、ダウンロードしたフリすれば良いの?

サービスワーカーで書いちゃだめなの?その処理。
2016/08/24(水) 08:45:06.93ID:7vNot/FK
>>416
おいおい、はぶてんなってw
建設的でないどころではなくなってるぞ。
これだけ皆が比較的長文で沢山レスして構ってくれてるんだから
あとは君の態度次第で強力な仲間となるだろうよ。

答えをもらう代わりに問題をきちんと問題として認識できる形であげれば
それで十分「交換」になる。
あとDLに関しては500くらいで試してみて。
確かpermissionの取り方によるのか知らんが50か100毎に確認出たはずだから。
ファイルごとにオーバーヘッドもかかるだろうしアーカイブ化した方がいい。
2016/08/25(木) 00:05:19.06ID:eAOsu6G6
>>420
1日500DLなら現在味見中で、既に2週間ほど動作して問題は発生していない。
確認は一度も出ていない。ただ、出る環境の場合はこれは使えないのも確かだ。
まあ500DLなら人力でも十分あり得る範囲、さすがにこれでバグ遭遇はない。

ローレベルでのファイルのオーバーヘッドはない。
そもそも自動アーカイブはほぼ書き込みばかりだから投げ捨てだ。
また、データの大半はjpg等の圧縮済みファイルだ。
(個数としてはテキストの方が多いがjpg一枚でおつりが来る)
だからzipというよりtarなんだが、それもしない方がいいだろうという読みだ。
まあここら辺はこちらで試す。

> あとは君の態度次第で強力な仲間となるだろうよ。
セミコロンの位置でドヤア()、文法でドヤア()する奴がいくら居たって邪魔なだけ。
俺について助けになるのは、プログラミング上級者(10k行のコードを平気でメンテ出来る)か、
俺以上にJavaScriptの仕様に詳しい連中だけだ。

後者については俺がJavaScripterではないのでここの連中でも当てはまるケースも多い。
それが俺がここにいる理由。
前者について当てはまるのはここには居ても数人だ。
だから内部構成についての指摘は大半が俺から見ればデタラメに過ぎなく、ウザイだけ。
よって、そっちに流れないように上位アーキテクチャの話に絞っているわけでね。
2016/08/25(木) 07:26:33.09ID:kFTapBTb
なーんだ
自分の手足となってくれる素直で言うこと聞いて優秀な部下もしくは奴隷がフリーで欲しいってことだったのか

サイコパスにちょっとでも強力しようと思った俺がバカだったわ
2016/08/25(木) 08:20:27.91ID:99xpDjOR
それにどうindexedDB使うのか全然わからん。
圧縮済みデータはそれ以上圧縮かからないから、圧縮しない、は
圧縮済みデータが一つのときだけじゃない?
エントロピーが偏れば圧縮は効くんだから、いくつか混ぜるとちゃんと圧縮は効くと思うけど。
そういう意味ではtarでアーカイブした上で、積極的な圧縮はせずに、Webサーバのgzip任せていいんでないの?
無駄な作り込みはバグ生むよ。

正直、普通に職業マやってたら、そんなステップ数のメンテは逆にしない。
逆に、しないように、スクラッチの時点でちゃんと切り分ける。

別に上級者気取りでも気にはしないけど、どう考えてもアーキが浮かばん。
アーキ屋何してんの?

何か情報を出すと俺のすごいシステムがパクられそうで怖い、みたいに聞こえるけど、そういうのって大体みんな通り過ぎて、王道はなるほど王道なんだな、って「そうしないだけ」だから、
気にせんで良いんじゃないの?
ホントに凄いかも!と思ったら、先にアイディアだけどっかに書いとけばいいよ。
2016/08/26(金) 18:32:39.75ID:wJ1YpBkQ
ID:fTj2N0cj
ID:m1LOPf7I
ID:fG60fvYz
ここって他者を見下して優越感に浸る人が多いよな
>>1からしてそんな感じだったからなるべくしてなったのかもしれんが
2016/08/26(金) 18:53:36.65ID:4RusDDpB
もし本当に他者を見下してるように見えるんなら精神病院行ったほうが良い。
本当に見下してれば相手と会話したりしない。
2016/08/26(金) 23:31:04.14ID:LTYwvQxl
バカほど人を見くびるもんだよ。
そして見くびれるからバカで居られる。
会話するメリットなんかいくらでもあるよ。ぬいぐるみは反抗しない「から。
反抗反論されると言うことは、自分の発言は反抗反論される程度の意味があんだ、むしろ相手が理解できない馬鹿なんだ」と思うことすらでき、一人で気持ちよくなれる。
2016/08/27(土) 05:01:58.71ID:T1cpNbqY
反抗しないぬいぐるみなんてここには居ないが?
後半は今回で言うと間違いなく ID:eAOsu6G6 の方だな
早く気付けよ
2016/08/27(土) 05:49:03.76ID:eRYPSeFa

Slot
🍜🍜👻
💣💯🎴
💯🌸🍜
(LA: 0.55, 0.58, 0.53)
2016/08/27(土) 09:23:29.57ID:4zJIWaih
>>427
反抗するぬいぐるみが居るから、書きに来てるんだろ、って文書のつもりだったけど、眠くて誤字でわけわからん感じだな。すまん。
2016/08/27(土) 21:50:54.70ID:T1cpNbqY
よく分からんが反抗する側がバカにやり込められるのなら、
それはやり込められた側の方がもっと酷いんじゃないのか?
2016/09/25(日) 17:50:33.44ID:Fmi0n6Ll
Flashの仕組み全く知らないんだけどさ、Flashって高速再生出来るようにならないのかね?
以下知恵袋では「プレイヤーも自作」となっているので、
逆に言えばJavaScriptで高速プレイヤーを作成して入れ替えてしまえば可能なのか?
認証とかはさておき。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10160742165

具体的にはGyaoの動画を1.5-2倍速で再生したい。要求スペックは以下。
・個人的に使えればいい。つまりコマンド手打ちが必要でもいい。
・再生速度は固定でいい。つまり最初から1.5xか2xで固定、再生中の変更は必要ない。
・最悪バッファでもいい。つまり30分の動画なら15分バッファした後の2x再生でいい。
・ダウンロードすれば出来るのか?しかし面倒なので出来ればダイレクトで。
2016/09/25(日) 19:27:04.48ID:r4NaSC4t
スクリプトでURI解析→ネットワークに対応した外部プレーヤで再生
2016/09/25(日) 21:06:19.30ID:Fmi0n6Ll
確かにそんなに難しく考える必要はないのかもね。
で、試してみたんだが、今のところ駄目だ。

データ取得先は当然あっさり分かる。
それをGOMプレイヤーに食わせてみた。
曰く、「ストリーミングサーバーが見つかりません」

ただGOMプレーヤー自体も滅多に使わないから、使い方が間違っているかも。
URLもこれでいいのかは謎だし。
なおAlquadeLiteも試したが、こちらは起動するもののFlashPlayerがクラッシュして駄目だった。

まあ何かあればよろしく。
2016/09/25(日) 23:14:29.89ID:Fmi0n6Ll
結局「GYAO動画ダウンローダJava」を使って高速再生は出来た。
ただし事前DLが必要だが、10倍速くらいでDL出来るので問題はない。

ただ正直ちょっと複雑だ。
こんなに簡単に出来るのなら公式で用意してくれよというのと、
意外に高速再生も快適ではないのでやっぱり用意する意味もないのかとも。

いずれにしても情報をくれた人はありがとう。
2016/10/16(日) 16:56:27.94ID:u0ZoFejP
・「クライアントサイド」のJavaScriptでは、innerHTMLをエスケープ(サニタイズ)する必要ないのか?

サイトのJSON_APIがスクリプトタグを含む文字列を送ってきていて、
こちらのGreaseMonkeyスクリプトは今はそれをそのまま表示してしまっている。(見た目は消える)
これはXSS的に問題だと思っていたのだが、以下を見ると、またこちらでも試した限り、
divタグの中身等としてappendChild/insertBeforeする分には実行されないようだ。

> が!残念ながらこの場合はscriptは動きません。
> http://tech-blog.tsukaby.com/archives/894

とはいえ、見た目消えてしまうのでどのみち修正は必要なのだが、
XSSの脆弱性という意味での対策は必要ないということでいいのだろうか?

俺はJavaScriptの専門家ではない。
したがって情報は基本的に全てWebなのだが、例えば以下のように、

> 例えば、DOM Based XSSを発生させる典型的なコードの例として、
> 以下のようなinnerHTMLの使用があったとします。
> // ★★★脆弱なコードの例★★★
> var div = document.getElementById( "msg" );
> div.innerHTML = some_text; // 外部からコントロール可能な文字列
> http://www.atmarkit.co.jp/ait/articles/1312/17/news010_2.html

とあって、その後「ブラウザー上で」エスケープするなりcreateTextNodeをしているわけだが、
これって全くの間違いで、必要ないのだろうか?
(サーバーサイドならもちろん必要として、クライアントサイドなら問題なしでいいのか?
今のところ、筆者もこれらを混同しているように見える。
記事は2013/12と古いのだが、これ以降に仕様変更されたのか?
なお上記一つ目(動かないと書いている方)のブログは2015/04)

なお念のため再度言うが、「クライアントサイド」で「innerHTML」の場合。
「サーバーサイド」でもなく、「outerHTML」でもない。
2016/10/17(月) 00:31:40.71ID:B8wMv80N
>>435
script タグでなくとも イベントハンドラ( onxxxx = )で動作するコードを注入されたら危険だろう
2016/10/17(月) 01:16:39.60ID:XzUmA52N
>>436
ああ、確かにその通りだ。<img onload>とかね。
ではやはりエスケープしないといけないね。
なるほど、ありがとう。
2016/10/18(火) 13:06:11.48ID:GiAjO0tK
ぶっちゃけいかなる脆弱性があったとしても、お金が関わるようなサイトでなければ関係ない
例えばある種のURLで飛ばされた時にXSS脆弱性があったとしても、
それは悪意のあるサイトから遷移したユーザーの責任。
それにCookieが抜かれようと変な表示がされようと何か致命的な問題になることはない。
いたずらレベル。
439デフォルトの名無しさん
垢版 |
2016/10/18(火) 22:14:37.24ID:8mVkPqez
それはその通りだし、神経質にやる気はない。
逆にそのためのブラウザの制限に辟易している状況だし。
とはいえ、JSON_APIの中身がtextなのかHTML文字列なのかは気にしておかないといけない。
その上で、どこまでやるかを各プロジェクト毎に決めればいいこと。
2016/10/19(水) 08:20:38.16ID:pQsxuliv
そういうとこを気にするのは愚か
CSPを使い、それが通るように書けば良いだけ
2016/11/21(月) 01:56:59.51ID:jF13U7nK
IndexedDBのスループットが全く出ないんだが、誰か高速実装サンプルコードを知らないか?
URLくれると有り難い。

こちらの実装では、スクレイプ結果の9000ファイルを書き込むのに15-20分かかっている。
全体の容量は、IndexedDB格納済みで20MB程度、tarファイルだと30MB弱といったところ。
キャッシュ済みの状態なら再スクレイプには2-3分しかかからない。
これを<a download=xxx>でtarファイルにするのには数秒しかかからないが、(最後のダウンロードに数秒)
IndexedDBに全て書き込むには15-20分かかる。
この場合はスクレイプと同時に内部的にtarファイルを作成しており、
大半は再スクレイプの時間なので比較としては不適だが、5-10倍程度遅い。(A)
なおtarファイルの展開には2-3分かかるので、これとの比較でも5-10倍程度遅い。(B)

現状、ファイルに落とす場合はスクレイプの方が明らかに遅いので全く問題ないのだが、
IDBに格納する場合はスクレイプよりも遅いのでそこで詰まる。
といっても2倍も遅くはなく、またスクレイプ側は通常は90%以上idle状態なので
現実的には問題は発生しないはずだが、それにしても遅すぎる。

トランザクション等の機能は所詮CPU時間なので、何をやってもここまで遅くはならない。
(chromeの実装が酷くても、また俺の実装が酷くても)
上記ファイル時間(B)でも5-10倍遅いのは何かおかしい。

とはいえ使い方が悪い可能性も多々ある訳なのだが、
とりあえず高速実装サンプルコードがあれば比較出来るので助かります。

実装/実験の詳細は、上記の通り、9000ファイルをIDBに格納、全体で20MB程度、
objectStoreは多めで150個程度、その中に30-150個くらいのファイルがそれぞれ格納される。
トランザクションはオブジェクトストア毎に纏めており、
実際のトランザクションは40-80個程度で、大半は平行可能。(仕様としては)
一つのトランザクション内には20個ずつputを入れている。
(トランザクション単位でのロールバックなので今回は20個くらいが適当かと思っている)
ただしいかんせん書き込んでくれない。
何かヒントあればよろしく。
2016/11/21(月) 02:24:13.88ID:xTCFhIWI
またお前か。
なぜそんな事をブラウザでやるか、それもindexedDBになぜ入れるかわからんが、
インデックス貼り過ぎではないか、
WebWorkerやServiceWorker使わずに表スレッドでやってないか
くらいかな。
スクレイプの方がはやい、DBの方が遅い、と言っても、同時に走るわけでは無いよ、ネイティブの機能でない限り。
2016/11/21(月) 02:56:54.44ID:jF13U7nK
いや、表スレッドでやっているぞ。

ただそれは実際には問題になっているようには見えないが。
もちろん同期APIは使ってない。
つまり当然非同期だし、表スレッドで待つことはない。

> 同時に走るわけでは無い
あまりにスループットが低いのが気になっているわけだが、
確かにこの意味では「詰まる」事はあり得ないのも事実だな。

> インデックス貼り過ぎではないか
こちらはインデックスは使っていない。
インデックス使わないと超遅いとかいうのも見かけたが、
(覚えでは)3-4年前の記事だったし、取り下げていたのであてにならないと見たが、使わないと駄目か?
こちらはキーパス無し、キージェネ無し。外部キーを自前で供給している。
(要するにlocalStorageの容量増加版として使用している。ただし非同期だからどうにも使いにくいが。)
> データベースを構築する
> キーパス キージェネレータ
> https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB

> なぜそんな事をブラウザでやるか
一番手軽だからだよ。ブラウズする時にはブラウザは必ず使う。
アーカイブ勝手に取れてれば楽でしょ。
別ソフト起動するのが面倒でない人はそうすればいい。

> indexedDB
ブラウザ側から「消せる」方が使い勝手がいいから。
なおファイルに落とす機能はもう完成済みで、サイトのミラーが勝手に構築出来るようになっている。
もちろん外部スクリプトでtarファイルを展開しなければならないが、これは仕様的に仕方ない。
IndexedDBはボロすぎて諦めていたんだが、微妙に使えそうになってきたので色気を出している。

というか俺はGreaseMonkeyだからね。サイトのスクリプトではないからあしからず。
2016/11/21(月) 04:59:18.67ID:+MgjqZsm
愚直に1つずつ保存しようとするから愚直なパフォーマンスしかでない。
DBには圧縮ファイル1つしか保存しない。
利用するときは解凍してメモリ上で1つずつ読み書きする。
最後に圧縮して保存する。これで問題ない。
もしくはキャッシュ用に設計されたCacheStorageを使う。
2016/11/21(月) 08:17:47.88ID:xTCFhIWI
>>443
だから、表スレッドでやるから遅いんよ。
同期APIでなくとも、常に一本しか走らん。

インデックス使わないと中身探すのに全舐めだよ。
もし、挿入でなくupdateしてるなら絶対に必要。これはライブラリとか使ってなくて手で書いてたら気づいてると思うけど。

アーカイブは普通、拡張書いてそこからDOM舐めて、http通信でサーバに送ったりindexedDBに保存したりファイルにしたりする。
グリモンのスクリプトでもあんま変わらん。
2016/11/21(月) 15:43:00.92ID:LVMdN4w/
とりあえず必要最小限のコードを全部提示しろ
2016/11/21(月) 23:45:11.05ID:jF13U7nK
すまん解決したかも。

詳細を投稿しようとしたが何故かNGワード規制なので細切れで試す。
2016/11/21(月) 23:46:56.58ID:jF13U7nK
俺はIDBTransaction.oncomplete内でdb.close()していたのだが、
以下ではIDBRequest.onsuccess内でやっており、
//nparashuram.com/IndexedDB/perf/#Transaction based on Write
それってありか?ということでMDNを確認した結果、MDNでもそうなので
https://developer.mozilla.org/ja/docs/Web/API/IDBDatabase/close
パッチして味見した結果、とりあえず倍くらいにはなった。

それでもまだ遅いが、今は安定して動く状態ではないので詳細は確認出来ない。
本修正して安定動作させ、まだ遅いようならもう一度投稿する。
ちなみにコード自体は上記上側と似たようなもの。ただしoncompleteを使っていた。
2016/11/21(月) 23:47:37.28ID:jF13U7nK
上記一つ目、httpが引っかかったようだ。脳内補完よろしく。
2016/11/22(火) 01:12:38.73ID:62WBcce4
>>448
あのさあ。
なんで強引にそうむりやり解決するのかわからん。
db.close使うことなんかほとんど無くねえか?
当たり前のようにonsuccessでトランザクションcommitするだけじゃねえの?

ずーっと偉そうだけど、脳筋が知恵の輪を強引にバラしてドヤ顔してるように見えて仕方ない。
ラグビー部員かゴリラレベルだよ、それ。
2016/11/22(火) 23:13:11.58ID:bRc12BV/
oncomplete->onsuccessについては失敗した。
これは積み込みが早くなる(見た目終わったように見える)だけであって、
スループットは変わってない。
db.open->db.close間の時間を計測していたので間違えた。

意味としては並行トランザクションの数を増やせば同じだし、実際そんな感じだ。
onsuccessでやると他情報のライフタイムがずれるので、話が面倒になっただけだった。
2016/11/22(火) 23:23:12.59ID:bRc12BV/
>>444
いや愚直なパフォーマンスでいいんだが、それすら出てないから問題視しているわけで。
ファイルと等速かやや遅いくらいなら十分なんだが。

圧縮展開を自前でやるのはさすがに面倒だ。
というかそれが常に成り立つならその機能ごと組み込んでおけという話だし、
実際そうなっている感触だ。
だからバグ対策でなければ自前でわざわざやる意味はないはず。

IndexedDBに関しては、基本的には「キー」となるものを「全体を一覧」出来る場所に保存して、
「本体」への参照をそれに持たせればよいだけだから、
ちゃんと実装してあれば大型ファイルへのアクセスはほぼファイルと等速になる。
だからFireFoxがFileSystemAPIを実装しない理由も妥当なのだが、
全然そうなってないからあれ?ってことで。(まだchromeでしか試してないが)
キャッシュ用に設計されている場合も
大型ファイル本体へのアクセス速度は上記の通り大して変わらないはず。
ただIndexedDBのようなインデックス検索が必要ないからその分速いが、
今はそこが見えるほどの状況になっていない。

ちなみに後述するが読み出しは速い。
(絶対的に速いかは未確認だが、書き込みと比べて50倍速い)
2016/11/22(火) 23:24:53.24ID:bRc12BV/
>>445
いやIndexedDBは基本的に別スレッドで実行される。
いちいち "in a separate thread" って書いてあるだろ。
俺は使ったこと無いが多分Nodeと同じ。
> https://developer.mozilla.org/ja/docs/Web/API/IDBObjectStore

ちなみにプロファイラーで確認したが、表スレッドは完全に遊んでいる。
60秒間で100ms程度動いていて、他はアイドル。
OS上のCPUメーターでも遊んでいるし、いずれにしてもCPUがらみで引っかかっている感じではない。
ただ、I/Oで引っかかるなら普通のファイルと同速になるはずなのだが、これがないから不思議に思っている。

> インデックス使わないと中身探すのに全舐めだよ。
> もし、挿入でなくupdateしてるなら絶対に必要。これはライブラリとか使ってなくて手で書いてたら気づいてると思うけど。
これはないよ。
普通にIndexedDBを実装する場合、外部キーもインデックスとして実装するでしょ。
今は更地(データベースそのものの構築、onupgradeneeded でバージョン1)から始めて9000ファイル書いている。
全舐めの問題なら1000個目のファイルと9000個目のファイルで9倍速度が落ちるはずだけど、それは全くない。
先にも言ったがインデックス検索はCPU時間(usオーダー)の話だ。
実際にそこも遅いのかも知れないが、今はそこが遅くても見えないほど他が遅い。

なおリードと勘違いしているのなら、今問題になっているのはライトだけ。
後述するが、リードはとりあえず十分な速度が出ている。
ちなみにIDBCursor.update()は使っていない。俺が使っているのはIDBObjectStore.put()。
2016/11/22(火) 23:34:52.08ID:bRc12BV/
一応パラメータ振ってみたが、
トランザクションの数を絞る(40->2)と目に見えて遅くなるので、並列はしているっぽい。
ただし増やしても速度は上がらない。
一つのトランザクション内のput数を増やしても明確な速度変化は見られない。(20->20-200)

問題点を整理すると、
・I/O律速ならファイルと同等程度になるはずだが、5-10倍遅い。(ライトだけ)
・CPU律速ではないように見える。CPUは空きまくり、スレッドもほぼ全てアイドル時間。
で、何が引っかかってこんなに遅いの?という話。
ちなみに読み出しは十分速く、IndexedDBの中身を丸ごとtarファイルにして出力するのに10秒程度。
格納に20分かかるのに、読み出しには10秒しかかからない。
(読み出しに10秒=中身を読みだしてtarファイルをblobとして作成するまでに10秒、
その後ダウンロードする時にさらに10秒かかる)
このtarファイルを7-Zipで更地に展開するには25秒。
cygwinで既にあるファイルシステムに上書き展開するのには2-3分かかった。(これが前の話)
格納だけ異常に遅いんだが、これって何?
単純比較するとリードと比べてライトが45-120倍遅い。

ただまあwriteが遅いのは事実のようだが、ここにあるように50k records for 10 sec ならいいんだが。
ttp://stackoverflow.com/questions/22577199/indexeddb-access-speed-and-efficiency

記事は古いがここ見る限り駄目なことはやってなさそう。
ttp://blog.nparashuram.com/2013/04/indexeddb-performance-comparisons-part-2.html

既に書いたとおり、コードはここと似たようなものだが、oncompleteを使っている。
ttp://nparashuram.com/IndexedDB/perf/#Transaction based on Write

とはいえライトだけ50倍遅いのは俺の使い方に問題があるのだろう。
実装が如何にボロくてもここまでにはならないし。
というわけで高速書き込みのサンプルコードがあればURLよろしく。
2016/11/23(水) 00:39:24.04ID:Bkme+Kby
もう出来てる、だがなんだか知らんが、それ捨てたほうが良いとおもうわ。
普通はこう言うのオフラインモード持ったプロキシとして作る。
2016/11/23(水) 23:07:06.62ID:V62ycJbx
とりあえず自力で辿り着けそうな雰囲気になってきた。
速いコードを見つけた、というかMDNのそのままをコピペしてコンソールで試したら十分速かった。
確実にこちらのコードに何か原因があるのだろう。
もし調べてくれてたらありがとう。
2016/11/24(木) 15:10:21.36ID:Mx4OpUDM
この白痴
IDBを使うな、使うにしてもそう使うなと言われてるのに聞かないんだもんな
救いようがない
2016/11/24(木) 16:54:40.99ID:HdRBGkCM
なんともならんよなぁ。
何故クローム拡張を作らんか(jsで書けるし、妥当な保存方法だし、クロスドメインで苦労しなくても良いし、もし配布を気にしてるならzipでも蒔ける)
色んな疑問が湧く。

要は、ロスカット出来ない類の奴なんだと思うよ。
今まで掛けた工数が惜しいとか、自分が未熟だと認めるのが悔しい、とか、
自分は一番良い方法を考えてて、その中で「ちょっとだけドキュメントが未熟だから」実現方法が分からない事を聞いてるだけなのになんだこいつら、とか。
ベンチャーか中小企業の社長に居そうな奴。
5年目か10年目に破産する類の。
2016/11/25(金) 00:21:37.68ID:9S7zID8/
こちらは解決しつつある。今はテスト中だ。前と同様にとちっているかもしれないが。
とはいえ、俺はお前らが何でそこまで自信過剰なのかさっぱり分からない。

5-10年目に破産したベンチャーの社長を笑えるのは、
ベンチャーを起こして10年以上持たせた奴だけだぞ。
お前らがそうだとは到底思えない。
そんなんだからゆとりは意識高い系()とか言われるんだよ。
意識高いだけで中身がないからウザイだけ。
まあお前らに付ける薬もないのも事実だが。
俺に付ける薬もないのと同様にね。

お前ら、OSSに参加もしてないだろ。
よくもまあそれで、としか思えないけどね。
2016/11/25(金) 00:52:34.50ID:SsHeBd9H
>>459
メンテナしてるけどそれが何か、って話な位で、得意になるもんでも無いんじゃ?
参加とやらの程度にもよるけど、ある程度やってりゃ、プルリクくらい普通に出せるだろ。
コミッタって関わるにあたって特別な事なんもしてないと思うけど。
リポジトリ晒せと言われたら色んなものが傷つくからやらんが。

「お前らがそうとは到底思えない」
「してないだろ」
「よくもまあそれで」
ってまぁ意識たけえなぁ。
ベンチャー起こして10年も持たさんで良いだろ。
まともな会社でそれなりに勤めて、何度か転職して、それなりの立場にいる方が余程視野が広がるよ。
少なくとも金の算段を必要以上にせんで良いからな。

大→中堅→ベンチャー→大と転職して色んな良いところ悪いところ見てきたからわかるが、お前は悪いところの総和みたいな姿しとるよ。
2016/11/25(金) 01:07:59.74ID:bE83eHTG
一人が自信満々なのを否定するのと大多数が自信満々なのを否定するのは意味が違うからな
2016/11/25(金) 01:21:08.20ID:9S7zID8/
>>460
お前がそれならそれでいいよとしか言いようがない。
それがWeb系といわれる所以だろうし。
別に俺はお前に評価される必要なんてないし。

OSS云々ってのは、明らかにお前らは距離感がおかしいからだ。
OSSやってる連中は、限られたリソース(時間と金)の中でやりくりしている。
各自が今現在の状況で最大の効果が出るように考えている。
もちろん制約条件がそれぞれ異なるので、
君にとっての今の最適解が俺にとっての今の最適解でないこともよくある。逆も然り。
だけどそれはそういうものだから、いちいち文句は言わないし、言われない。
文句があるならお前がやれ、方針が違うならフォークしろ、の世界であるし。

だからお前らみたいな「俺の提案が神だからそれ以外は認めない」はないんだよ。
君は参加しているつもりになっているだけで、実際は観戦しているだけだよ。
参戦していない。
2016/11/25(金) 01:22:21.94ID:9S7zID8/
ただまあそれ以前に俺はお前らの提案がいいとも思わないけどね。
いちいち反論した方がいいのか?ならば言ってみてもいいが、
余りこんなのをやってもお互いに意味はないんだよ。
どうにもお前らはこういうのが好きなようだが。

>>458
CacheStorageはhttps縛りだから使えない。
クローム拡張にしない理由は、FireFoxもサポート対象だから。
並行して2つのソースを管理するほどリソースはない。GreaseMonkeyなら一つのソースで済む。
ここら辺は要するに楽な方をとっているだけ。
クロスドメインについてはGreaseMonkeyは独自拡張を持っていてスルー出来る。
配布なら苦労してない。
GreaseMonkey導入後の環境ならuser.jsリンクをクリックすればインストールされる。
zipすら要らない。リンク一つで済む。
掛けた工数云々は関係ない。
未来の工数も踏まえた上で、今現在の最善手を選んでいるだけ。
これは俺以外のOSSに関わる連中全員そのはずだが。
上記の通り、今現在何も問題ないし、移行のメリットもないのにするわけないだろ。
IndexedDBと同様、chrome拡張にもどんな落とし穴があるかも分からないわけだし。

これで満足か?
何でお前らがこんな点ばかりににこだわるのか俺はよく分からないが。
2016/11/25(金) 08:31:00.71ID:QZ3DaKSR
>>462
評価される必要はないのに、相手を下げて自分を高めようとえらく必死だな。

限られたリソースは現実であって、目指すべきものはそのリソースに縛られたものにすべきじゃない。
俺には手一杯だからとか、この部分俺あんまり強くないから、とかは、放置するんじゃなくて、明言する。
どんどんマサカリ投げて、どんどんプルリク投げて欲しくて、画像貼らせてほしい。
誰かのリソースが足りないのなら、そう書いて、他の誰かのリソースの援助を求めるべきなんよ。
リソースが足りてないから制約条件になります、はおかしいし、ここまで物言いがついたら、最適条件がなぜ最適条件なのか、くらいからもう一回ゆっくり考えるべき。
ソクラテスのいじめまがいの問答をもってでもやるべき。

「俺の提案が神だからそれ以外は認めない」?
俺はそんな事は言ってないが。
むしろ、お前がずーっと言ってる事じゃねえの?

>>463
httpsなんかなんとでもなるだろ。letsencryptもあるし、イントラなら証明書配れば良い。
並行して管理するのは画面周りで良いので、実際の管理工数は1.3倍程度になる。きっちり画面とロジックの設計をしてれば。
なら、むしろグリモン縛りなら、グリモンでプロキシ書いたらいかんのか?
あと、データは普通に、indexedDB使わんと、ファイルに書けんじゃん。
そのアーカイブとやらをBase64にして、前後にvar tmp=""つけてjsとして書き出して、選んで@requireで読み込むだけで良いんだが、なんかindexedDBの出番ある?
それこそインデックスだと思うけどね。
2016/11/25(金) 08:34:29.54ID:PtU3UTK5
いつも思うが、ここの質問者は複雑な背景がある質問をソースコードを出さずに質問するのは何故だ?
代替案が提案されるのは情報が出そろってないから
初めから全ての情報を出せばこんなことにはならない
アドバイスした人や否定意見を「お前等は分かってない」で一蹴してさんざん馬鹿にした上で去るのが常
お前が情報を出さないのが全ての原因
2016/11/25(金) 08:47:16.69ID:QZ3DaKSR
>>465
賢いつもりで、文句言ってくるやつは愚鈍だと言いたいんだろう。
そもそも相手を愚鈍にしておきたいから、ソース出さないんだと思うけどね。
俺なら早めに自分のリポジトリの上げて、声出して、便利そうだけどここで使い物にならんので、置いとく、とかやる。
個人の持ち物なら。
仕事や金儲けでやってたら、人の話聞かないと大怪我するのはわかってるしな。
2016/11/25(金) 09:05:01.87ID:cmXQyT89
いいんだよもう。
本当に心底困ってて、礼儀正しく質問してくる奴なんて幻なのだから。
俺すげーしたいやつ、ただここでアピールすることで興奮し、
不安を取り除いてやる気を出そうとするやつの話を聞いてやるのもこのスレの役目。
2016/11/25(金) 12:43:41.42ID:QZ3DaKSR
まぁ、拡張もクリック一つなんだけどね。
それが現状ベスト、ではなくて、それしか使えない、って白状すりゃいいのに、プライドの高いやつだなぁ。
2016/11/25(金) 13:19:56.25ID:1PQbLaAu
自分は万全に良く知ってて良く考えてると思ってるけど、
技術が圧倒的に足りないのもあってうまいこと行かず、
もやもやしたフラストレーションが溜まってるんでしょう。

要するに何か具体的に解決したいのではなくスッキリしたいだけ。
まあそれは結局自らの問題だから他人に言っても仕方ないんだけどね。
2016/11/25(金) 22:05:14.23ID:9S7zID8/
お前らがそういうことにしたいのならそれでいいけども、
お前らのレベルの低さは他言語スレ見たらすぐ分かると思うんだが。

とはいえWeb系()に付ける薬はないのは分かった。
そしてこの言葉が広まっているのはつまり皆が同感するからであり、
それを俺が何とかしようとしても、所詮俺如きではどうにもならないのも分かった。

まあせいぜいポストゆとりに殺されてくれ。
2016/11/25(金) 22:06:17.97ID:9S7zID8/
>>465
ここでのこういうやりとりは無駄であって、
その時間をソースコード開発に回すべきだと思っているから。
ここに晒したらいちいち反応しなければならなくなるだろ。
それは時間の無駄だ。結局今回も自力で辿り着いてしまったし。

俺も結局は最善手を選んでいるだけ。
ここでコードを晒して時間を浪費するよりは、
何か情報があればラッキー程度として、基本的に自力で解決することに賭けた。
これまでのやりとりを見る限り、君達には俺のコードは読めないし、解決する能力もない。
だからせいぜいサンプルコード発掘くらいだと思ってそうした。
書き込み速度のオーダーを知っていればその点の即答もあるかと思ったが、それもないし。
おそらく君らは俺がやっているほど負荷掛けた使い方をしていない。だから何も知らない。
オススメのCacheStorageのスループットも知らないだろ?要するに君らはその程度なんだよ。
それで何でそこまで自信過剰なのか俺には分からないのだが。
(俺もそれを知らないから俺が大したこと無いのももちろん事実だが、
君らも大したことはないんだよ、それを自覚しないといけない)

そもそも代替案なんて必要なかった。
もう対策は出来ていて、十分な速度は出ている。(以前と比べて50倍速以上)
本来あるべき回答は「その書き込み速度は明らかに遅すぎるから、お前のコードに問題がある」だった。
ただ君らは本来の書き込み速度自体を知らないから、これに答えられず、
「遅いのなら違う方法を試せ」という間違った回答をよこし、それを正解にしようとしている。
色々明らかにずれているんだよ。
2016/11/25(金) 22:07:04.84ID:9S7zID8/
とはいえここら辺のずれもこれまでどおりだから、
俺は君らからでも有効回答が得られる可能性を残しつつ、
無駄に巻き込まれないように出す情報も絞ってある。
それだけ。
ただ、やっぱり難癖付けられて巻き込まれてはいるが。
前も言ったが、こっちもどこまで出せばどれくらいの精度が期待出来るかは分かるから、
こちらが出していない部分については当然回答がないということで全く問題ないんだよ。
出している範囲で明らかにおかしければ指摘して欲しいし、問題ないならスルーでいい。
ただ今回は出している範囲でも明らかにおかしいのに誰も指摘出来てないだろ。
そしてさらにおかしな回答をよこしてそれを正しいと主張している。
お前らがそれで仕事しているらしいからWeb系()って怖いわ。

なお君は465=444か?
だったら俺は君の回答には不満はない。知っている範囲で答えた良い回答だ。
知らない奴が間違った主張をするからおかしな事になるわけであってね。
ただなんか知らんがJavaScriptの連中はこういうのが多いが。
2016/11/25(金) 22:36:44.21ID:TwCdHdIi
うーん、やっぱり、何かおかしいわ。

開発って長くやってりゃわかるけど、コード睨んでるより、飯食って風呂入って嫁とゴロゴロしてる時くらいに謎の天啓で解けるようなもんで、
ソースコード自体は「こう書く」と決めてから、ガーッと書いて半日位で終わるんだよなぁ。

ゴリラの知恵の輪見て、「お、解けてる、ゴールに辿り着いたな」と思うのは仏くらいだろ。

そのスループット、は背景がわからないと答えられないんよね。
グリモンでもバージョンによって違うし。
遅いなら違う方法試せ、は要は、「情報が足りなすぎてわからん。自分でやってみろよ」の糖衣文だろ。

やってるほど負荷をかけてない、って当たり前よ。
密航船の奴隷でもあるまいし。
普通は人数と航路に対して適切な船を選ぶか、船に対して適切な航路と人数を選ぶもんだ。

絞ったものには、絞ったなりの答えしか来ないよ。

WebはWeb屋、俺はイントラ屋と思ってるおっさんでも思うんだから、お前が馬鹿にしてる新進気鋭のWeb屋さんならもっとキツめに思うと思うよ。

少なくとも俺はそれはブラウザではやらん。
2016/11/25(金) 23:59:05.15ID:9S7zID8/
お前も話をすり替えるのな。それもWeb系()の悪い癖だわ。
多分すぐに「ポストゆとりの新進気鋭のWeb屋」に駆逐されるよ。
俺の知ったことではないが。
2016/11/26(土) 00:52:43.95ID:9lTBiZ7O
すり替えられた、何か攻撃されてる、それはWeb系()だからだ、と保身で揶揄してるままだと、それこそ新進気鋭に駆逐されるよ。
合理的だからね、彼らは。
最後から二つ目の段落に書いてあることも読めないくらいだから仕方ないけど。
2016/11/26(土) 01:30:19.73ID:S6y++TVv
もしかして理解できない事はどれだけ喩えて言われてもすり替えられてると思ってるのかな
2016/11/26(土) 02:26:09.31ID:bM77xh/N
>>471
お前が自分の都合しか考えない自己中な奴だという事が分かっただけだな
お前が情報を開示しない事で、他人がお前の状況を正確に把握できず、お前の求める答えが無ければ情報を後出しして非難するわけだ

お前と同じ環境を揃えなければ再現する事は不可能だ
仮に俺の環境で検証したとしても後出しでいろいろと情報を付け足して否定するのは目に見えている
再現性が限りなく低いと分かっている問題に時間をかける奴はいない
「君達には俺のコードは読めないし、解決する能力もない」といってるが、実際にはお前の説明能力の問題
2016/11/26(土) 05:01:06.08ID:RLAnsqoN
そもそも解決して頂こう、その努力をしようと思っていないしな。
こいつは人様を一体何だと思ってるんだ?
技術者として以前に人間として下手くそな奴だな。
2016/11/26(土) 11:38:59.71ID:EHtLgt8W
相変わらずゆとりの言い訳ばかり。本当にお前らどうしようもないな。
そうやって自己正当化ばかりしているからゆとりのままなんだよ。
まあそれをやり続けて数年後に死ねばいいと思うよ。

情報は後出ししてない。
最初の投稿>>441の時点で異常に遅いと分かるし、指摘出来る。
もちろん俺も異常に遅いと感じたから色々確かめていた。
とはいえコード自体は特に問題なさそうだったし、
そもそも俺はIndexedDBを初めて使うから速度のオーダーが分かってなかった。
だから聞いた。結果、誰も知らず、50倍遅いのを誰も見抜けなかっただけ。

結局お前らの実力ってその程度って事だよ。これは事実だよ。
他言語で50倍も遅いのに気づかないようだと殺される。
もちろん初心者ならいいけど、お前ら初心者じゃないつもりなんでしょ。
俺はそこら辺の勘違いを直せと言ってるんだよ。

とはいえ全く聞く耳持たないようだし、多分Web系()と言われる理由はそこなのだろう。
おそらく俺も他言語の技術者が既にやってきた指摘を繰り返しているだけ。
お前らがムキになって俺を悪者に仕立てるのもよく分からんが、そうしたければそうすればいい。
そんなことをしてもお前らの実力があることにはならない。

数年後にポストゆとりに殺されるか、
JavaScriptがもっとメジャーになって他言語の上級者が流入してきてお前らのゴミっぷりがばれて殺されるか。
あるいはWeb系()は今のままで低空飛行を続けられるか。
まあ俺の知ったことではないが。
2016/11/26(土) 19:29:29.83ID:RLAnsqoN
言ってることが無茶苦茶
ユーザースクリプトがワンクリックなんちゃらとか
拡張機能でもワンクリックで更新できますが?
そういった事が山ほどある
もう働きたくないでござる!働きたくないでござる!と言ってるようにしか見えない。

それとなんか、自分の正当性をペラペラ喋りまくることが正義だと思ってみたいだけど大間違い。
この世の正義とは、可愛げ・真摯さ・悪どさであって、
本当にひたむきに取り組むかは別にして、相手の意見を組んだことを示さなきゃ、
あれも嫌、これも嫌、じゃ最悪

お母ちゃんに駄々をこねる思春期少年のような態度を示されても困る
情報の後出し云々以前の問題
人間としてまともにコミュニケーション取れるようになってから来いよな
ほんと
2016/11/26(土) 20:26:02.31ID:9lTBiZ7O
説明力0だしな。
でかいファイルの更新、は、遅いよ。
levelDBの実装見りゃわかる。
2016/11/26(土) 22:27:36.04ID:EHtLgt8W
JavaScriptの環境にも色々問題があるのだけど、
お前らが上達してない最大の原因はお前らの人格だよ。
しかもそれを認めないと来てる。ゆとりは嫌われて当然だよ。
技術的なことは技術的に判断しないといけない。

>>473
一応言っておくけどお前もWeb系()以外の何者でもないよ。
50倍遅いコードを擁護するなんて他言語ではあり得ないから。
それを見抜けない奴を擁護することもね。

いや、正確に言えば、Web系ではサーバーサイドの連中も含まれてしまうので申し訳ない。
駄目なのは「ゆとりJavaScripter」と「その取り巻き」だね。

サーバーサイドでは処理性能が鯖コストに直結する為、50倍なんて当然認められない。
俺が遭遇したケースだと、Goの奴に「そんなところでString.replace使ってんじゃねーよ。
forで回して変換しろ」と言われたことがある。まあ正直、勘弁してくれよと思ったが。
フルスタック()とか言っているらしいけど、
俺が見る限りPHPの連中はお前らよりマシっぽいし、上記の通り環境もキツいので鍛えられる。
ポストゆとりを待つまでもなく、PHPerがフルスタック化すればお前らは殺されるよ。
まあPHPerには別の問題があるのかもしれないし、それも含めて俺の知ったことではないが。
2016/11/26(土) 23:21:05.86ID:9lTBiZ7O
>>482
なんだそりゃ。
鯖とかフルスタックの話するとなると、はっきり言って、

「使うべきでないものは最初から使わない」
に行き着くべきなんだが。

そんな事をするぐらいなら、札束でAWSのインスタンスをガンガン起こすSIerの発想の方がまだ正しいよ。
万能ナイフでビーフシチューは、作れないことも無いけど、作るべきじゃない。
その程度の次元の話。
あと、これはすり替えではなくて、無能に説明してる比喩表現だからね。
2016/11/26(土) 23:42:25.47ID:EHtLgt8W
>>483
お前は文脈が読めてないな。
JavaScriptの前に日本語を勉強した方がいい。

それと、
> 「使うべきでないものは最初から使わない」
に関しては俺も同意だが、そんなに議論したいのなら、>>464の馬鹿を何とかしろ。
CacheStorageを無理に使いたいからletesencryptを使ってサーバ絡ませて@require?
GreaseMonkeyでIndexedDBを直接扱えばそれで終わる話で、何でそんなことになるわけよ?
としか思えなかったが、人格に至らない点があるらしい俺からでは説得は無理だ。
素晴らしい人格と説明能力の持ち主である君から是非彼を説得してくれ。
2016/11/27(日) 01:20:07.95ID:bBkWJjxZ
>>484
あのさぁ。抗う言葉が無くなってきたからといって、それはなかろう。
全然同意してないじゃん。
してるならそのソース捨てなよ…。

文脈を読ませるのはお前の仕事だ。
逆に、書いてあることを書いてある通りに読み、書いてない事を読まないのもお前の仕事だ。

IndexedDBなんか使うな、と言っとろうが。464でも。CacheStroageを使えとも言ってない。

適当にファイルに落とせば?って言ってんの。
それしたいなら、拡張で書くか、プロキシとして実装しろ、と。

何で相手がお前以下だと、お前の発想を単に否定しているだけだと思いこむの?
モヒカンなの?
2016/11/27(日) 01:52:00.72ID:sEFEgE7T
>>485
ファイルに落とす機能はもう既にあって、動いていると>>443で言ってるだろ。
お前は本当に日本語が不自由な奴だな。

大体IndexedDBなんてただのストレージなんだし、どう使おうが問題ないだろ。
お前ら何で駄目だと思いこんでるんだ?
2016/11/27(日) 02:10:05.21ID:F1aOp1KR
ID:EHtLgt8W
この人、「お前ら」と一括りにして反論する癖があるのね
選民意識の強い人と言うべきか
この人の場合は「自分」と「自分以外」で選民している感が強い
全能感も強くてコミュニケーション能力に問題がある感じ
2016/11/27(日) 02:17:18.52ID:bBkWJjxZ
>>486
日本語が不自由とか自己紹介良いよほんと。

外部スクリプトで展開、とかアホな事言ってんじゃん。
なんでそれ直接読めるような鯖かかんの?って疑問。
そうすりゃ解決すんのに。

ただのストレージではないし、どう使っても問題ないものでは無い。
indexでアクセス出来る、indexが昇順で並んでいる、サブインデックスも張れる、本来はバイナリを入れるためのものでは無いものだよ。
だから、万能ナイフとかそういう喩えで話してんじゃん。
やろうと思ったら出来るけど、それやるくらいなら別のやり方するって言ってんの。

>>487
きれいな言葉で包んでやらんでも良かろう。
ただの自己愛性人格障害でしょ。
2016/11/27(日) 02:53:05.25ID:fRnX9irD
誇大性(空想または行動における)、賛美されたい欲求、共感の欠如の広範な様式で、成人期早期までに始まり、種々の状況で明らかになる。以下のうち5つ(またはそれ以上)によって示される。

自分が重要であるという誇大な感覚(例:業績や才能を誇張する、十分な業績がないにもかかわらず優れていると認められることを期待する)
>>全レス
限りない成功、権力、才気、美しさ、あるいは理想的な愛の空想にとらわれている。
>>概ね全レス
自分が “特別” であり、独特であり、他の特別なまたは地位の高い人達(または団体)だけが理解しうる、または関係があるべきだ、と信じている。
>>459 OSS発言、
過剰な賛美を求める。

特権意識(つまり、特別有利な取り計らい、または自分が期待すれば相手が自動的に従うことを理由もなく期待する)
>>471-472
対人関係で相手を不当に利用する(すなわち、自分自身の目的を達成するために他人を利用する)。
>>471-472
共感の欠如:他人の気持ちおよび欲求を認識しようとしない、またはそれに気としない。
>>全レス
しばしば他人に嫉妬する、または他人が自分に嫉妬していると思い込む。
>>459 意識高いだけ云々
尊大で傲慢な行動、または態度
>>全レス

フルビットで通院案件
2016/11/27(日) 05:35:11.63ID:mveO+vV3
人にケチ付ける前に自分のレスを見直した方がいい。
「IDBで一般的にこういうコードのケースで思ったようにパフォーマンスが出ないんだが」
この一言で済む話。
他は全て、私は怠惰です、短気です、プライドが高いです、とアピールしているようなもの。

もし一生懸命自分の中でやり尽くしたと思うのなら、
尚更一般的な話に落とし込んで問題提起しなくちゃ。

自尊心は、そういう前向きな回転を生み出すことで保つべきで、
自己肯定や他者否定に縋っちゃ駄目。
もっと頑張らなくちゃ。
2016/11/27(日) 10:33:33.02ID:sEFEgE7T
>>488
いやただのストレージだよ。
FireFoxは「FileSystemAPIなんて要らない。だってIndexedDBで事足りる」という立場だ。
当たり前だがこれは「FileSystemAPIの代わりにIndexedDBを使うことに何の問題もない」という意味だよ。
少なくとも彼等はそう思っている。
(俺はOSから透過のFileSystemAPIがあった方がいいと思っている)
Blobの格納も出来るようになってるだろ。
もっとも、駄目ならBase64使う奴もいただろうし、それも選択肢だよ。
インデックスも貼れるけど、使わなくても何も問題ない。
とはいえこれらには合意する必要はない。
俺のプロジェクトは俺が方針を決めるし、君のプロジェクトでは君が方針を決めるだけのことだ。

次の質問に移ろう。
何故君はそんなに教科書的使い方にこだわるのか?

IndexedDBはインデックスを使ってアスキーを入れないといけない?何故?
俺は装備を見比べて使えそうな物を使っているだけ。具体的には
IndexedDB, CacheStorage, FileSystemAPIの中で一番マシなIndexedDBを使おうとしているだけ。

> なんでそれ直接読めるような鯖かかんの?って疑問。
サーバに関しては完全に俺の管轄外だ。
ガチの勝手スクリプトだから、こちらの要求は基本的に通らない。
2016/11/27(日) 12:34:58.81ID:bBkWJjxZ
>>491
彼らって誰?
Blobが格納できるようになったのは、中期以降。
しかも、そんな一つあたりが大きいデータの為じゃない。
これは、LevelDB見てくりゃわかること。

貼らなくても問題ないことはないよ。キーっていうインデックスは出てくるわけだし、sortedなので、そのキーに長くてソートが不要なものは使うべきじゃない。

俺のプロジェクトだから、俺が決める、なんて言っちゃうなら、OSS発言は取り消しといてね。
対極の発想だから。それ。

教科書的な使い方にこだわってるんじゃないよ。
実装見て、それは遣い方が悪いってものに対して、おかしいよって言ってる。

管轄外ってなんだそりゃ。フルスタックじゃねえの?(笑)
は、置いといて。

単純に、Clientで動かすプロキシ書けばいいんだよ。
特定のURLの場合、ネットワークで取得せずファイルから見るような。
2016/11/27(日) 12:45:45.17ID:bBkWJjxZ
もしかして、鯖って書いたらサーバー側で動かすもの想像してたのかな。
こいつのフルスタックって何なんだ。
2016/11/27(日) 12:54:03.05ID:x2gPA/Jh
無知と怠慢。救いようがない
2016/11/27(日) 12:54:44.21ID:bBkWJjxZ
なんでこんな事言ってるかと言うと、テレホの時代に、同じような物沢山観たんだよね。
metagetaしかり、Vectorにいっぱいあるレベル。
自分が一番イケてると思ってるんだろうが、単に轍に乗ってるだけ。
2016/11/27(日) 13:12:59.65ID:bBkWJjxZ
ちなみに、IndexedDBで事足りる、とは言ってないんよね、Mozillaは。
ローカルファイルを使いたいなら今API策定してる、とも言ってるし。

割りと無難なブラウザオンリーな対応何は、ダウンロードしたそのアーカイブをドラッグアンドドロップやなんかでjsで受けてjsで開く事だと思うけど。すでにファイルとして出せるなら。

怠慢の方がマシ。
馬鹿な働き者は撃ち殺すしかないという典型例。
2016/11/27(日) 13:18:28.75ID:HGJqeK8l
もういいからROMって?
2016/11/27(日) 13:31:22.83ID:sEFEgE7T
>>496
お前はやはり日本語にどうにも問題がある。議論は無理だ。
とはいえお前にも分かる範囲の所は答えておく。

> 割りと無難なブラウザオンリーな対応何は、ダウンロードしたそのアーカイブをドラッグアンドドロップやなんかでjsで受けてjsで開く事だと思うけど。すでにファイルとして出せるなら。
その通りだ。そしてこれはもう実装出来ている。
そして別オプションとしてIndexedDBにも格納出来るようにしようとしている。

> 俺のプロジェクトだから、俺が決める、なんて言っちゃうなら、OSS発言は取り消しといてね。
> 対極の発想だから。それ。
違うんだな。お前はOSSに「参戦」していないからそれが分からない。
>>464なんて典型的な勘違いだぞ。
ただまあとにかく「参戦」してみろ。それだけでいろいろ分かるはずだから。
2016/11/27(日) 13:35:35.02ID:bBkWJjxZ
ムダそうだからROMるわ。すまんな。

>>498
メンテナじゃアホ。
2016/11/28(月) 05:41:09.72ID:sKwraRFT
一つ言えることは、この件についてやってみる価値がありそうなこと沢山あるのに、
めんどくさがって手を動かさないで口だけで反論するのでは前に進みようがないということだね
2016/11/29(火) 03:20:41.76ID:MuupHWfc
別オプションとしてindexedDBに…保存する意味がわからん
2016/11/29(火) 23:05:21.60ID:BntnGE9d
「FileSystemAPI が不要」なのは、ファイルの書き込み機能は
blob URL リンクにしてダウンロードで事足りるから、ではないのかな?
2016/11/30(水) 10:48:28.24ID:Sk/SQjO5
超初心者です。
PHPとJavaScriptでホームページ作っていますがJavaScriptの変数名の使い方で質問です

phpの場合
変数名 hoge1fuga hoge2fuga ……を使用する時変数iを使って
 → if(hoge'.$i.'fuga == 'abcd')

→ $h = 'hoge'
$f = 'fuga'
if($h$i$f == 'abcd')
のような書き方ができますがjavascriptの場合どう書けば良いのでしょうか。

var hoge = fuga1.checked
の時に var hoge = fuga + i + .checked の記述にするとエラーになってしいまい、変数名の使い方そのものに疑問が湧きました。
2016/11/30(水) 10:49:26.04ID:Sk/SQjO5
>>1読んでませんでした
上の質問無視してください
失礼しました
2016/11/30(水) 16:00:04.29ID:1swyBgvf
>>503
できないことはないが、行儀が極めて悪いことだとされるのでしない。
そういうときは、配列を使う。 つまり、
var fuga1, fuga2 ではなく、
var fuga = [] とする。 利用するときは、
var hoge = fuga[i].checked となる。
2016/12/31(土) 15:44:33.33ID:nUjD4DbZ
JavaScript死亡www

「WebAssembly」がITの未来に変革もたらす|Google、Apple、Microsoft、Mozillaが共同で開発した新概念

「WebAssembly」がWebブラウザに変革をもたらします。
Webブラウザは、もともとただテキストを表示するだけのところから始まりました。その出発点から、現在ではコミュニケーションやゲームまで幅広い表現を可能にしています。
そして今回、「Webブラウザ」に新しい概念が加わわることになりました。
それをもたらしたのが、ブラウザに関わりの深い世界規模の4社「Google」「Apple」「Microsoft」「Mozilla」が共同開発した、Webのためのバイナリーフォーマット「WebAssembly」です。
今回はその「WebAssembly」について、「スゴイところって何?」「何が起きるの?」をご紹介していきます。
WebAssemblyは「JS不要。コンパイラ言語だけで動的アプリが作れる」「どの言語でもWebブラウザ上にアプリを作ることができる」

WebAssemblyによってもたらされるスゴイところは次の4つ。
コンパイラ言語だけで、Webブラウザ上に動的なアプリが作れる
ほぼ機械言語にコンパイルされるからヌルヌル動く
OSを一切気にする必要がなくなる。気にするのはブラウザのみ
C,C 以外の言語でもWebAssemblyにコンパイルされる「クロスコンパイラ」の可能性が高まった

これまでWebブラウザで、ユーザからの入力情報を元に、動的なアプリケーションを実現するためには「JavaScript」が必須でした。

「インタプリター言語」であるJavaScriptは、その都度ソースコードを機械語に翻訳する必要があるため、予め機械語に近くコンパイルされる「コンパイラ言語」と比較すると動作が遅いという特徴があります(※)。

もしコンパイル後の機械語に近い形で、Webブラウザ上でコードが実行されたら。
JavaScript以上にヌルヌルに動き、しかもJavaScriptを気にする必要がなくなります。

それを実現したのがこの「WebAssembly」です。

https://mayonez.jp/1690
2017/01/01(日) 00:42:27.84ID:k8/wNRO9
あちこちに落としているようだが、誰一人として肯定して無くてワロタw
つかマジでJavaScript界隈の馬鹿共はこんなデタラメ記事書くのをいい加減止めた方がいいと思うのだが。
自浄作用が無いのは、お前らが叩かないからでもあるんだぜ。
嘘は叩かれるべき。

Cに関しては昔は間違い叩きがすごかったと聞くが、
結果的にWeb上での間違いは皆無となり、お互いの利益になってる。
JavaScriptに間違い記事が氾濫しているのは、第一義には書く奴が悪いんだが、放置されていることも問題だよ。
とはいえ、この記事には投稿欄が無いため、#mayonez編集部=馬鹿と覚えておくしかないが。
この点はQiitaのほうがかなりマシだな。
2017/01/01(日) 08:00:47.18ID:FrNRDqOE
>>507
素晴らしい指摘をしているであろうあなたの投稿を見たいからQiitaで使っているアカウントを教えてくれ
2017/01/01(日) 08:49:58.30ID:k8/wNRO9
>>508
ゆとり死ね

ツーかお前ら本当に池沼なのな。俺は「ゆとりBot」作れそうな気がしてきたよ。
2017/01/01(日) 08:55:22.46ID:2Xf0vibn
ID:k8/wNRO9 のような他人のダメ出ししか出来ない奴がまともな指摘をするとは思えないのでどうでもいい
2017/01/01(日) 08:59:00.51ID:k8/wNRO9
>>510
その通りだ。お前は正しい。
それが分からないからゆとりは池沼なのだし、嫌われる。
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況