実際にJavaScriptを書いている人の情報交換所です。
プログラミング既習者専用です。初心者の方はご遠慮下さい。
玄人の方、歓迎致します。
探検
JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net
1デフォルトの名無しさん
2015/12/07(月) 07:26:33.87ID:NYLGCW0V352デフォルトの名無しさん
2016/07/20(水) 03:30:00.35ID:eZynd/Sj B.2.2だろ?
他を見てもアクセサとして実装するところまでは仕様のようだから、
deleteに関しても仕様通りの実装になっていれば同じ動作だろう。
しかしObject.definePropertyを使えば同じ事が副作用無しで出来るのに
わざわざdeleteする意味は何?
他を見てもアクセサとして実装するところまでは仕様のようだから、
deleteに関しても仕様通りの実装になっていれば同じ動作だろう。
しかしObject.definePropertyを使えば同じ事が副作用無しで出来るのに
わざわざdeleteする意味は何?
353デフォルトの名無しさん
2016/07/20(水) 07:46:36.40ID:2oUQ3wZY >>350
まあ多分Object.prototype.__proto__が嫌いな人は
Object.prototypeに余計で醜いの生やすな!って言いたいのもあるだろうから
それで良いんじゃないのかな。
あとまあES仕様は基本的に一箇所に最小限しかかかれていなくて、
慣れていないうちはあっち行ったりこっち行ったりする必要があるが、
逆に言うと基本処理を覚えてパターンに慣れるほどに読みこなしてしまえば、
短い一部を読むだけで理解できるからむしろ楽という事もある。
仕様書いてる人もそうだから、初めて読む人の読みづらさがなかなかわからないんじゃないかな。
まあ多分Object.prototype.__proto__が嫌いな人は
Object.prototypeに余計で醜いの生やすな!って言いたいのもあるだろうから
それで良いんじゃないのかな。
あとまあES仕様は基本的に一箇所に最小限しかかかれていなくて、
慣れていないうちはあっち行ったりこっち行ったりする必要があるが、
逆に言うと基本処理を覚えてパターンに慣れるほどに読みこなしてしまえば、
短い一部を読むだけで理解できるからむしろ楽という事もある。
仕様書いてる人もそうだから、初めて読む人の読みづらさがなかなかわからないんじゃないかな。
354デフォルトの名無しさん
2016/07/20(水) 09:31:33.55ID:E+SEwayU このようにJavaScriptの仕様書っていうのは
よく読まれやすい。読んでいるからこそ苦情も出てくる。
それに対して、他の言語の仕様書は読む気すらおきない
よく読まれやすい。読んでいるからこそ苦情も出てくる。
それに対して、他の言語の仕様書は読む気すらおきない
355デフォルトの名無しさん
2016/07/20(水) 13:30:34.45ID:2oUQ3wZY 処理系と仕様が完全に分離されてるのもどちらかと言うと珍しいのもあるかもな。
RubyやPythonだったら言語学者でもない限りメインの処理系の動き=仕様ということで納得する部分があるが
JSだと沢山の処理系で動くように作らないといけないからね。
各処理系の対応度合いもまちまちだし、1つの処理系だけ取っても変化が早い。
だから言語仕様書を頼ることが多くなるのかもね。
でも言語仕様書はあくまで言語仕様書であり、リファレンスとは違うので誰にでも分り易いものではないね、
RubyやPythonだったら言語学者でもない限りメインの処理系の動き=仕様ということで納得する部分があるが
JSだと沢山の処理系で動くように作らないといけないからね。
各処理系の対応度合いもまちまちだし、1つの処理系だけ取っても変化が早い。
だから言語仕様書を頼ることが多くなるのかもね。
でも言語仕様書はあくまで言語仕様書であり、リファレンスとは違うので誰にでも分り易いものではないね、
356デフォルトの名無しさん
2016/07/20(水) 23:30:45.27ID:E+SEwayU JavaScriptの標準APIがRubyのそれとは違って
大幅に機能が少ないからのは標準化のせいなのかな?
他言語を見習って一気にメソッド増やしてほしいものなんだが。
http://ruby-doc.org/core-2.3.1/Enumerable.html
これらのメソッドの多くがないから、lodashなどに
頼る必要が出てくる。
他言語で標準化されてるならば、JavaScriptに取り入れるかなんて
議論する必要はないと思うんだけどな。
大幅に機能が少ないからのは標準化のせいなのかな?
他言語を見習って一気にメソッド増やしてほしいものなんだが。
http://ruby-doc.org/core-2.3.1/Enumerable.html
これらのメソッドの多くがないから、lodashなどに
頼る必要が出てくる。
他言語で標準化されてるならば、JavaScriptに取り入れるかなんて
議論する必要はないと思うんだけどな。
357デフォルトの名無しさん
2016/07/21(木) 07:48:11.60ID:3EZYXG7o Rubyやらより遥かに後方互換性を切るのが難しいからね。
Rubyやらはなんだかんだ言ってメジャーバージョンアップの時には思い切って互換性を切ることができる。
そこでの一番の問題はユーザーがついてきてくれるかとか、そんなところ。
でもJSは後方互換性を切るとなったら、それが受け入れられるかなんてむしろどうでもよくて、
今あるコンテンツのほぼ全てに影響がないかが大事になる。
それは同等の力を持ったエンジンが複数あり、ユーザーコミュニティではなくエンジン開発陣主体だから。
目線が違うので、便利だから入れようという盛り上がりが起こることは少なく、
今ある特にパフォーマンスや技術的問題を、具体的に解決できる提案が取り入れられやすい。
Rubyやらはなんだかんだ言ってメジャーバージョンアップの時には思い切って互換性を切ることができる。
そこでの一番の問題はユーザーがついてきてくれるかとか、そんなところ。
でもJSは後方互換性を切るとなったら、それが受け入れられるかなんてむしろどうでもよくて、
今あるコンテンツのほぼ全てに影響がないかが大事になる。
それは同等の力を持ったエンジンが複数あり、ユーザーコミュニティではなくエンジン開発陣主体だから。
目線が違うので、便利だから入れようという盛り上がりが起こることは少なく、
今ある特にパフォーマンスや技術的問題を、具体的に解決できる提案が取り入れられやすい。
358デフォルトの名無しさん
2016/08/21(日) 21:25:32.47ID:u7v77FIA IndexedDBでdeleteObjectStoreする時にトランザクションが(仕様上)取れなくて、
そのままdb.close()するとエラーになる時があるんだが、これってどうすればいいのだ?
e.target.errorは以下。e.target.transacsionはnull(IDBFactory.openで呼んだ直後)
target:IDBOpenDBRequest
error:DOMException: The connection was closed.
code:20
message:"The connection was closed."
name:"AbortError"
createObjectStoreはtransactionプロパティがあるのでそれでoncompleteを待てるのだが、
deleteObjectStoreは何故かvoidを返す仕様で、待ちようがない。
ならばそのままクローズで良いのかと思いきや、エラーになる。
https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase/deleteObjectStore
普通ならIDBDatabase.transactionがプロパティでそこから辿れるはずなのだが、メソッドだし。
deleteの時にトランザクションがないわけがないし、
それにアクセス出来ないのは仕様上の欠陥だと思うが。
createObjectStoreがobjectStoreを返すのは便利で良いが、本来はTransactionを返すべき。
だったら空オブジェクトにtransactionプロパティだけでも付けておいてくれないと対応出来ない。
なおヒット状況は、
1. あらかじめIndexedDBに500個ほどオブジェクトストアを作っておく。
2. open直後にそのうち3つほどを連続して消す。
3. クローズ。
この3のタイミングの取り方が分からない。
IndexDBは初めて使うので、使い方が間違っていたり、
或いは大幅に勘違いしてるかもしれないけど、その辺も含めてよろしく。
なおアプリとしてはもう一度削除されるだけなのでクリティカルな問題ではない。
そのままdb.close()するとエラーになる時があるんだが、これってどうすればいいのだ?
e.target.errorは以下。e.target.transacsionはnull(IDBFactory.openで呼んだ直後)
target:IDBOpenDBRequest
error:DOMException: The connection was closed.
code:20
message:"The connection was closed."
name:"AbortError"
createObjectStoreはtransactionプロパティがあるのでそれでoncompleteを待てるのだが、
deleteObjectStoreは何故かvoidを返す仕様で、待ちようがない。
ならばそのままクローズで良いのかと思いきや、エラーになる。
https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase/deleteObjectStore
普通ならIDBDatabase.transactionがプロパティでそこから辿れるはずなのだが、メソッドだし。
deleteの時にトランザクションがないわけがないし、
それにアクセス出来ないのは仕様上の欠陥だと思うが。
createObjectStoreがobjectStoreを返すのは便利で良いが、本来はTransactionを返すべき。
だったら空オブジェクトにtransactionプロパティだけでも付けておいてくれないと対応出来ない。
なおヒット状況は、
1. あらかじめIndexedDBに500個ほどオブジェクトストアを作っておく。
2. open直後にそのうち3つほどを連続して消す。
3. クローズ。
この3のタイミングの取り方が分からない。
IndexDBは初めて使うので、使い方が間違っていたり、
或いは大幅に勘違いしてるかもしれないけど、その辺も含めてよろしく。
なおアプリとしてはもう一度削除されるだけなのでクリティカルな問題ではない。
359デフォルトの名無しさん
2016/08/21(日) 22:46:27.65ID:Dn9vwW86 >>358
createもdeleteもversionchangeでしか使えんだろう。
createもdeleteもversionchangeでしか使えんだろう。
360デフォルトの名無しさん
2016/08/21(日) 23:07:56.19ID:u7v77FIA createObjectStoreも単発で作るだけなら同じかもしれないが、それは試していない。
こちらの使い方では以下サンプルの通り、
createObjectStore直後にobjectStore.transaction.completeで書き込みを行っているので、
書き込み側では今のところ問題はない。
> 「データベースを構築する」からの抜粋
> var objectStore = db.createObjectStore("customers", { keyPath: "ssn" });
> objectStore.transaction.oncomplete = function(event) {
> }
> https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB#Opening_a_database
ちなみにcreateObjectStoreのtransactionは複数作成しても同一なので
(oncompleteは最後に1回呼ばれるだけ)
おそらくdeleteObjectStoreのトランザクションとも同一。
だからこれが見えれば問題は解決出来るはずなのだが、辿り方が分からない。
(というか仕様上抜けているように見える)
こちらの使い方では以下サンプルの通り、
createObjectStore直後にobjectStore.transaction.completeで書き込みを行っているので、
書き込み側では今のところ問題はない。
> 「データベースを構築する」からの抜粋
> var objectStore = db.createObjectStore("customers", { keyPath: "ssn" });
> objectStore.transaction.oncomplete = function(event) {
> }
> https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB#Opening_a_database
ちなみにcreateObjectStoreのtransactionは複数作成しても同一なので
(oncompleteは最後に1回呼ばれるだけ)
おそらくdeleteObjectStoreのトランザクションとも同一。
だからこれが見えれば問題は解決出来るはずなのだが、辿り方が分からない。
(というか仕様上抜けているように見える)
361デフォルトの名無しさん
2016/08/21(日) 23:34:58.54ID:u7v77FIA ちなみにcreateObjectStore/deleteObjectStoreを常用しようとしている。
APIを見る限り、確かにこれは通常想定されている使い方ではないようだが、
versionカウンタが64bit整数だから出来ない使い方でもない。
管理上最適な階層にすると、今回はcreate/deleteを常用する事になる。
だからそれが出来るかどうか試している。(実用に耐えるかどうか)
APIを見る限り、確かにこれは通常想定されている使い方ではないようだが、
versionカウンタが64bit整数だから出来ない使い方でもない。
管理上最適な階層にすると、今回はcreate/deleteを常用する事になる。
だからそれが出来るかどうか試している。(実用に耐えるかどうか)
362デフォルトの名無しさん
2016/08/21(日) 23:35:23.04ID:sjfW/TwQ トランザクションはversionchange全体で1つ
363デフォルトの名無しさん
2016/08/21(日) 23:45:38.76ID:Dn9vwW86 >>360
ハンドラに代入したらそりゃ一回だけじゃねえの?
addEventListener使わないのはどうして?
複数作成しても同一、ってなんで複数作成する必要があるの?
トランザクションと同じ、の根拠何なの?
onupgradeneededでしか使えないんじゃなかったっけ?
消す意味がわからんのだけど、なんで消したいの?
消さなきゃいけないなら保存なんかしなけりゃ良いと思うんだが。
createObjectStoreがなんでtransaction帰すべきなの?
ObjectStoreをcreateしたのに。
一つのストアから、2つ以上のトランザクション作りたい場合に詰むんじゃねえの?
なんか根本的に間違ってない?
ハンドラに代入したらそりゃ一回だけじゃねえの?
addEventListener使わないのはどうして?
複数作成しても同一、ってなんで複数作成する必要があるの?
トランザクションと同じ、の根拠何なの?
onupgradeneededでしか使えないんじゃなかったっけ?
消す意味がわからんのだけど、なんで消したいの?
消さなきゃいけないなら保存なんかしなけりゃ良いと思うんだが。
createObjectStoreがなんでtransaction帰すべきなの?
ObjectStoreをcreateしたのに。
一つのストアから、2つ以上のトランザクション作りたい場合に詰むんじゃねえの?
なんか根本的に間違ってない?
364デフォルトの名無しさん
2016/08/21(日) 23:48:10.59ID:ZqmshKaM なぜ、ストアごと消す必要があるんだろう。
中身だけ消せばいいんじゃねえの?clear一発っしょ。
中身だけ消せばいいんじゃねえの?clear一発っしょ。
365デフォルトの名無しさん
2016/08/22(月) 00:02:44.22ID:m1LOPf7I 中身だけ消す使い方も出来るが、それだと名前対応の辞書引きが必要になる。
管理上「最下層の名前=最下層のobjectStoreの名前」が一番簡単だからそうしている。
アクセス/追加/廃棄単位もこれと同一だから、管理上はそこにobjectStore階層を置きたい。
もちろんキーに全部含めてフラットに扱うことも出来るが、
元々階層オブジェクトなのをフラットにしてDBに負荷をかけるのは本末転倒だ。
それでコードが楽になるならメリットもあるが、今回はそうではないし。
今回は完全に階層オブジェクト(末端はファイル)だからIndexedDBの必要はないのだけど、
FileSystemAPIだとChromeしか使えない。
これについてはFireFoxはIndexedDBを使えという主張らしく、
確かに機能的には上位互換だから、動作が十分に軽ければ問題ない。だからそれを試している。
https://dev.mozilla.jp/2012/07/why-no-filesystem-api-in-firefox/
http://www.html5rocks.com/ja/tutorials/file/filesystem/
管理上「最下層の名前=最下層のobjectStoreの名前」が一番簡単だからそうしている。
アクセス/追加/廃棄単位もこれと同一だから、管理上はそこにobjectStore階層を置きたい。
もちろんキーに全部含めてフラットに扱うことも出来るが、
元々階層オブジェクトなのをフラットにしてDBに負荷をかけるのは本末転倒だ。
それでコードが楽になるならメリットもあるが、今回はそうではないし。
今回は完全に階層オブジェクト(末端はファイル)だからIndexedDBの必要はないのだけど、
FileSystemAPIだとChromeしか使えない。
これについてはFireFoxはIndexedDBを使えという主張らしく、
確かに機能的には上位互換だから、動作が十分に軽ければ問題ない。だからそれを試している。
https://dev.mozilla.jp/2012/07/why-no-filesystem-api-in-firefox/
http://www.html5rocks.com/ja/tutorials/file/filesystem/
366デフォルトの名無しさん
2016/08/22(月) 00:09:17.75ID:bLWZhaRu ファイルって何に使ってるの?
最悪消えても良いのならCacheStorageもあるが。
最悪消えても良いのならCacheStorageもあるが。
367デフォルトの名無しさん
2016/08/22(月) 00:15:46.53ID:m1LOPf7I >>362
確認した。おそらくそのようだ。
> Transactions of this mode cannot run concurrently with other transactions. Transactions in this mode are known as "upgrade transactions."
> https://developer.mozilla.org/ja/docs/Web/API/IDBTransaction
そしてこの"upgrade transactions."がどこのプロパティに現れるのか知りたい。
つか、一つならdb.transactionにぶら下げといてくれよなと。
createObjectStoreの後にもここにはぶら下がってないね。
確認した。おそらくそのようだ。
> Transactions of this mode cannot run concurrently with other transactions. Transactions in this mode are known as "upgrade transactions."
> https://developer.mozilla.org/ja/docs/Web/API/IDBTransaction
そしてこの"upgrade transactions."がどこのプロパティに現れるのか知りたい。
つか、一つならdb.transactionにぶら下げといてくれよなと。
createObjectStoreの後にもここにはぶら下がってないね。
368デフォルトの名無しさん
2016/08/22(月) 00:23:12.68ID:m1LOPf7I >>366
Web上のファイルの保存用途に使う。(アーカイブ)
だからファイルが保存出来れば何でも良い。
(まだFileSystemAPIは試していない)
URLは最初から階層になっているし、それを保つのが管理上一番楽だからそうする。
したがって、DBアクセスの必要はない。
ユーザがライフタイムを完全に管理出来なければならない。
(Web上から削除された時、ユーザ側で削除するか保存するか決める)
CacheStorageはあとで見てみるが、チラ見では新しすぎる感じ。
Web上のファイルの保存用途に使う。(アーカイブ)
だからファイルが保存出来れば何でも良い。
(まだFileSystemAPIは試していない)
URLは最初から階層になっているし、それを保つのが管理上一番楽だからそうする。
したがって、DBアクセスの必要はない。
ユーザがライフタイムを完全に管理出来なければならない。
(Web上から削除された時、ユーザ側で削除するか保存するか決める)
CacheStorageはあとで見てみるが、チラ見では新しすぎる感じ。
369デフォルトの名無しさん
2016/08/22(月) 00:32:40.08ID:utwn7AiT >>365
頭おかしくなければ、もともと階層オブジェクトなのをフラットに、とか変な事考えなくていいんじゃねえの?
/hoge..../a.php?aaa/bbb
/hoge.../a/aaa/bbb
が同じとかあんじゃん。
url:{
content:Blob,
schema:xxx,
host:xxxx,
port:xxxxx,
path:[aaa,bbb,ccc]
}
とでもオブジェクト作って、pathにインデックス貼れば?
なんの負担でも無いよ。indexで引くDBだからindexedDBなんだし。
階層構造を保存するためにハードディスクが階段の形してるなら寝言続けて。
頭おかしくなければ、もともと階層オブジェクトなのをフラットに、とか変な事考えなくていいんじゃねえの?
/hoge..../a.php?aaa/bbb
/hoge.../a/aaa/bbb
が同じとかあんじゃん。
url:{
content:Blob,
schema:xxx,
host:xxxx,
port:xxxxx,
path:[aaa,bbb,ccc]
}
とでもオブジェクト作って、pathにインデックス貼れば?
なんの負担でも無いよ。indexで引くDBだからindexedDBなんだし。
階層構造を保存するためにハードディスクが階段の形してるなら寝言続けて。
370デフォルトの名無しさん
2016/08/22(月) 00:36:42.04ID:m1LOPf7I >>366
CacheAPI見てみたがライフタイムの管理がよく分からん。
「ユーザ側からの削除無しなら永久保存」(つまりファイルと同じ)に出来る物なの?
https://developer.mozilla.org/ja/docs/Web/API/Cache
あとIndexedDBはFireFoxがそういっているから試してみているだけであって、
FileSystemAPIだとWindowsから直接コピーとか出来るはずなので、
結果的にアーカイブの管理が楽にはなるから、そっちを使うかも。
いずれにしても今は試している段階だ。
何か情報あればよろしく。
CacheAPI見てみたがライフタイムの管理がよく分からん。
「ユーザ側からの削除無しなら永久保存」(つまりファイルと同じ)に出来る物なの?
https://developer.mozilla.org/ja/docs/Web/API/Cache
あとIndexedDBはFireFoxがそういっているから試してみているだけであって、
FileSystemAPIだとWindowsから直接コピーとか出来るはずなので、
結果的にアーカイブの管理が楽にはなるから、そっちを使うかも。
いずれにしても今は試している段階だ。
何か情報あればよろしく。
371デフォルトの名無しさん
2016/08/22(月) 00:42:53.49ID:utwn7AiT 自分はすごく考えた結果、こうする他がない、でもわからん。不自然な答えになる。そのやり方は不自然なやり方だからどこにも載ってないから教えてってときに、情報出し渋るなよ。
どう考えても自分の発想が間違ってる以外の結論出ないんだから。
>>370
しかしなんでパスをインデックスに出来ないの?
限界サイズは一番でかいか無限だよ。IndexedDBは。
どう考えても自分の発想が間違ってる以外の結論出ないんだから。
>>370
しかしなんでパスをインデックスに出来ないの?
限界サイズは一番でかいか無限だよ。IndexedDBは。
372デフォルトの名無しさん
2016/08/22(月) 00:43:11.87ID:m1LOPf7I >>369
それも何の負担もないが、
元のURLもクエリを含まないからそのままでも全く負担無いんだよ。
だからその方法ではコードは楽にならない。
仮にFileSystemAPIを使ったとして、
Windowsから直接ファイルをアクセス出来れば、
アーカイブが要らなくなった時にエクスプローラから削除出来るでしょ。
直感的に一番簡単。
それを意味無くフラットなDBにしてしまったら、
そのアプリいちいち起動しないとあれこれ出来ないでしょ。
バグってて削除出来ないとかもあり得るわけでね。そういうこと。
他アプリとインタフェースが揃っているのは重要なんだよ。
仮にIndexedDBも結果的にWindowsファイルの階層として見える形で
objectStoreを置いてくれていれば、同様のことが期待出来るわけだし。
それも何の負担もないが、
元のURLもクエリを含まないからそのままでも全く負担無いんだよ。
だからその方法ではコードは楽にならない。
仮にFileSystemAPIを使ったとして、
Windowsから直接ファイルをアクセス出来れば、
アーカイブが要らなくなった時にエクスプローラから削除出来るでしょ。
直感的に一番簡単。
それを意味無くフラットなDBにしてしまったら、
そのアプリいちいち起動しないとあれこれ出来ないでしょ。
バグってて削除出来ないとかもあり得るわけでね。そういうこと。
他アプリとインタフェースが揃っているのは重要なんだよ。
仮にIndexedDBも結果的にWindowsファイルの階層として見える形で
objectStoreを置いてくれていれば、同様のことが期待出来るわけだし。
373デフォルトの名無しさん
2016/08/22(月) 00:49:08.43ID:m1LOPf7I374デフォルトの名無しさん
2016/08/22(月) 00:56:03.75ID:m1LOPf7I IndexedDBの容量制限は実質1/10*HDDね。
https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria
多分FileSystemAPIには上限がない(HDDの上限だと信じている)
繰り返すが、今回は元々アーカイブ用途だからそもそもDBアクセスの必要はない。
(横断的クエリとか検索とかは全く必要ない)
ただ、機能的には上位互換だから動作に問題なければそれでもいい。それだけ。
https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria
多分FileSystemAPIには上限がない(HDDの上限だと信じている)
繰り返すが、今回は元々アーカイブ用途だからそもそもDBアクセスの必要はない。
(横断的クエリとか検索とかは全く必要ない)
ただ、機能的には上位互換だから動作に問題なければそれでもいい。それだけ。
375デフォルトの名無しさん
2016/08/22(月) 01:07:03.73ID:utwn7AiT >>372
は?消すのはエクスプローラーなの?
意味なくフラットなぁ。
十分に意味のあるフラットだと思うけど。
バグって削除できないから、だから最初の発想では毎回ストアを作って破棄します、なんて考え方だったの?あきれた。
upgradeはなんなのか。
dir /S/Bした結果だから余程見慣れてると思うけどね。
WindowsWindowsって気持ち悪いけど。
べつに、どのフォルダ以下、って、キーの先頭xxxxxx文字が指定のもの、なんだし、特に変わらんと思うんだけど、
お前の中で違うならそうなんだろう。
フラットに見えるものが、フラットではないと思うのがよくわからなすぎて悩むわ。
indexedDBには文字列しか保存できないと思ってんのかな。
フラットにはしない!って、じゃあどうやってWindowsってフォルダの構造保存してるんだろう。
って考えたら、
フラットなものに保存されてる事気づくと思うんだけど。
>>374
だから、実際のサイズ調べてこいよ。
クォータまでだよ。
それに、残念だけど、フォルダとして見られる物じゃないよ。
は?消すのはエクスプローラーなの?
意味なくフラットなぁ。
十分に意味のあるフラットだと思うけど。
バグって削除できないから、だから最初の発想では毎回ストアを作って破棄します、なんて考え方だったの?あきれた。
upgradeはなんなのか。
dir /S/Bした結果だから余程見慣れてると思うけどね。
WindowsWindowsって気持ち悪いけど。
べつに、どのフォルダ以下、って、キーの先頭xxxxxx文字が指定のもの、なんだし、特に変わらんと思うんだけど、
お前の中で違うならそうなんだろう。
フラットに見えるものが、フラットではないと思うのがよくわからなすぎて悩むわ。
indexedDBには文字列しか保存できないと思ってんのかな。
フラットにはしない!って、じゃあどうやってWindowsってフォルダの構造保存してるんだろう。
って考えたら、
フラットなものに保存されてる事気づくと思うんだけど。
>>374
だから、実際のサイズ調べてこいよ。
クォータまでだよ。
それに、残念だけど、フォルダとして見られる物じゃないよ。
376デフォルトの名無しさん
2016/08/22(月) 01:09:42.35ID:utwn7AiT まさかディレクトリ掘るのに再起使ってるから、平たくする方法がわからんのかな。
そんなに階層階層言うなら、階層構造渡したらそのまんま保存してくれるラッパ作るか、
バイナリの保存はちょっと考えなきゃならんがブラウザ版nedbでも使えばいいのに。
そんなに階層階層言うなら、階層構造渡したらそのまんま保存してくれるラッパ作るか、
バイナリの保存はちょっと考えなきゃならんがブラウザ版nedbでも使えばいいのに。
377デフォルトの名無しさん
2016/08/22(月) 01:16:58.93ID:bLWZhaRu >>370
保証はされていないが、一般的な環境ではまず問題ない。
というかIDBも実際は永続性は保証されていない。
Fxだと保証されているのは非標準のオプションを指定した時のみで、
他のブラウザでも基本的に一時的なものでディスクが埋まった時は利用頻度の少ないものから削除される。
トランザクションだって完璧でない。実際はパフォーマンス向上のためにディスクの書き込み完了を待たない。
保証はされていないが、一般的な環境ではまず問題ない。
というかIDBも実際は永続性は保証されていない。
Fxだと保証されているのは非標準のオプションを指定した時のみで、
他のブラウザでも基本的に一時的なものでディスクが埋まった時は利用頻度の少ないものから削除される。
トランザクションだって完璧でない。実際はパフォーマンス向上のためにディスクの書き込み完了を待たない。
378デフォルトの名無しさん
2016/08/22(月) 01:19:31.86ID:m1LOPf7I >>375
> それに、残念だけど、フォルダとして見られる物じゃないよ。
そうか、これは残念だ。
だったらやっぱりFileSystemAPIかな。
削除機能は内部にも付けるけど、
エクスプローラでも追加/移動/削除出来た方がいいのは自明だろ。
他アプリとの連携もし易くなるし。
まあお前が色々勘違いしているのは分かるけど、
既に言っていることばかりだから読み返してくれ。
> それに、残念だけど、フォルダとして見られる物じゃないよ。
そうか、これは残念だ。
だったらやっぱりFileSystemAPIかな。
削除機能は内部にも付けるけど、
エクスプローラでも追加/移動/削除出来た方がいいのは自明だろ。
他アプリとの連携もし易くなるし。
まあお前が色々勘違いしているのは分かるけど、
既に言っていることばかりだから読み返してくれ。
379デフォルトの名無しさん
2016/08/22(月) 01:25:17.05ID:utwn7AiT >>378
だから、FileSystemApiがだよ。
フォルダとしては見られないか、超掘り返さないと見れないよ。
更にいうと、エクスプローラでなんなりするべきものじゃない。
それはもう、Electronかなんかで作れ。な?
お前が勘違いしてるのは、多分indexedDBへの保存の方法だとの思うけど。
そのために必要な階層構造を保ったまま、indexdDBに十分入れれるからな。
だから、FileSystemApiがだよ。
フォルダとしては見られないか、超掘り返さないと見れないよ。
更にいうと、エクスプローラでなんなりするべきものじゃない。
それはもう、Electronかなんかで作れ。な?
お前が勘違いしてるのは、多分indexedDBへの保存の方法だとの思うけど。
そのために必要な階層構造を保ったまま、indexdDBに十分入れれるからな。
380デフォルトの名無しさん
2016/08/22(月) 01:25:40.46ID:utwn7AiT まぁ、インスペクタでは表にしかならんだろうけど。
381デフォルトの名無しさん
2016/08/22(月) 01:30:27.67ID:m1LOPf7I >>377
了解。ありがとう。
アーカイブ用途なのでトランザクションに関しては問題ない。
再ダウンロードして保存すればいいだけだから。
機能は、Web上で削除されたファイルをまだ削除されていないように見せかけるもの。
それが永久だとアーカイブということになる。
CacheAPIは多分この用途に作られているから、
それが使えるのならそっちを使った方が色々すんなり行くのだろうね。
プロキシとして機能してくれるなら、いちいちObjectURLに張り替える必要もなくなるし。
全体として楽になる。
ただ永久保証無しなら、何らかの形で抽出機構が必要になる。
これがちと面倒か。
多分CacheAPIの区画を「永久」「一時」とユーザー側で指定出来れば一番良いのだけど、
無理だよね?
了解。ありがとう。
アーカイブ用途なのでトランザクションに関しては問題ない。
再ダウンロードして保存すればいいだけだから。
機能は、Web上で削除されたファイルをまだ削除されていないように見せかけるもの。
それが永久だとアーカイブということになる。
CacheAPIは多分この用途に作られているから、
それが使えるのならそっちを使った方が色々すんなり行くのだろうね。
プロキシとして機能してくれるなら、いちいちObjectURLに張り替える必要もなくなるし。
全体として楽になる。
ただ永久保証無しなら、何らかの形で抽出機構が必要になる。
これがちと面倒か。
多分CacheAPIの区画を「永久」「一時」とユーザー側で指定出来れば一番良いのだけど、
無理だよね?
382デフォルトの名無しさん
2016/08/22(月) 01:33:03.22ID:m1LOPf7I383デフォルトの名無しさん
2016/08/22(月) 01:34:46.91ID:m1LOPf7I384デフォルトの名無しさん
2016/08/22(月) 01:38:12.92ID:utwn7AiT >>382
そのままじゃなくて、書き加えて保存できるし、
その任意のプロパティをインデックスに出来るよ。
お前の言うフォルダ名も、そのままでも、セパレータで分割しても、両方でもインデックスとして保存できる。
このフォルダ以下、これと同じ階層のもの、ファイル、全部綺麗に管理できるんだけどね。
これをフラットだからダメ、って言うなら、
一つのオブジェクト入れるオブジェクトに好きなだけツリー構造こしらえれば良いのかもしれん()が。
ノータリンに説明した時間が無駄だったな。
そのままじゃなくて、書き加えて保存できるし、
その任意のプロパティをインデックスに出来るよ。
お前の言うフォルダ名も、そのままでも、セパレータで分割しても、両方でもインデックスとして保存できる。
このフォルダ以下、これと同じ階層のもの、ファイル、全部綺麗に管理できるんだけどね。
これをフラットだからダメ、って言うなら、
一つのオブジェクト入れるオブジェクトに好きなだけツリー構造こしらえれば良いのかもしれん()が。
ノータリンに説明した時間が無駄だったな。
385デフォルトの名無しさん
2016/08/22(月) 01:44:52.41ID:m1LOPf7I386デフォルトの名無しさん
2016/08/22(月) 01:53:36.82ID:utwn7AiT >>385
はぁ。そうですか。
それでidb程度が使えないというか、わけわからん仕様出してくるとは、「それなりに考えて」階層化してるものが、表型DBに落ちてりゃ最高に面白いけど、フォルダ()なんだろうな。
好きに悩んでバギーなもの作ればよろし。
はぁ。そうですか。
それでidb程度が使えないというか、わけわからん仕様出してくるとは、「それなりに考えて」階層化してるものが、表型DBに落ちてりゃ最高に面白いけど、フォルダ()なんだろうな。
好きに悩んでバギーなもの作ればよろし。
387デフォルトの名無しさん
2016/08/22(月) 01:59:36.01ID:utwn7AiT ブラウザの枠越えてフォルダがどうとか言うなら普通にWindowsアプリ組めばいいんじゃないのかな。
ブラウザはブラウザでサンドボックスになってるから良いのに。
ブラウザはブラウザでサンドボックスになってるから良いのに。
388デフォルトの名無しさん
2016/08/22(月) 02:02:44.31ID:m1LOPf7I >>386
いや何を勘違いしているのか知らんが、コードはもう動いているし今はテスト中だぞ。
まあそれはさておき、FileSystemAPIが異なるファイルシステムを使っているのは
確定ではないがどうやらそのようだ。
というかこれだとWeb屋は言葉を間違っている。
サンドボックス:その内部で何をやっても外部に影響はない
ブラックボックス:その内部がどうなっているか外部からは見えない
ブラウザストレージはサンドボックスである必要はあるが、
ブラックボックスである必要はない。というかFileSystemAPIならなおさら。
てかマジでブラックボックスならFileSystemAPIの存在価値無いよ。
これだとFireFoxの言うとおりだと言うことになる。
何で意味無くブラックボックス化してんだ?
いや何を勘違いしているのか知らんが、コードはもう動いているし今はテスト中だぞ。
まあそれはさておき、FileSystemAPIが異なるファイルシステムを使っているのは
確定ではないがどうやらそのようだ。
というかこれだとWeb屋は言葉を間違っている。
サンドボックス:その内部で何をやっても外部に影響はない
ブラックボックス:その内部がどうなっているか外部からは見えない
ブラウザストレージはサンドボックスである必要はあるが、
ブラックボックスである必要はない。というかFileSystemAPIならなおさら。
てかマジでブラックボックスならFileSystemAPIの存在価値無いよ。
これだとFireFoxの言うとおりだと言うことになる。
何で意味無くブラックボックス化してんだ?
389デフォルトの名無しさん
2016/08/22(月) 02:14:19.68ID:utwn7AiT >>388
サンドボックスだ、としか言ってないし、
ブラックボックスではない、とは言ってないからいいんじゃねーの?
動いててテストフェーズなのに未実装機能あるなんて面白いのか面白くないのかわからんな。
だから言ってんじゃん。
それゴミ。idbの方がはるかにマシ。
要はクロームアプリ同士で、ファイルが筒抜けにならんように隔離してみました、って感じ。
サンドボックスだ、としか言ってないし、
ブラックボックスではない、とは言ってないからいいんじゃねーの?
動いててテストフェーズなのに未実装機能あるなんて面白いのか面白くないのかわからんな。
だから言ってんじゃん。
それゴミ。idbの方がはるかにマシ。
要はクロームアプリ同士で、ファイルが筒抜けにならんように隔離してみました、って感じ。
390デフォルトの名無しさん
2016/08/22(月) 02:22:51.64ID:m1LOPf7I >>389
いやFileSystemAPIと言うからにはエクスプローラで操作出来ないと駄目だろ。
機能としてはIndexedDBの方が上位互換なんだから、
独自ファイルシステムなら存在価値がない。
> 要はクロームアプリ同士で、ファイルが筒抜けにならんように隔離してみました
この必要あるの?
具体的に言えばアプリのシグネチャ?でも混ぜ込んであるって事?
ローカルストレージが共通なのが多少問題だったから仕切ったってわけか?
いやFileSystemAPIと言うからにはエクスプローラで操作出来ないと駄目だろ。
機能としてはIndexedDBの方が上位互換なんだから、
独自ファイルシステムなら存在価値がない。
> 要はクロームアプリ同士で、ファイルが筒抜けにならんように隔離してみました
この必要あるの?
具体的に言えばアプリのシグネチャ?でも混ぜ込んであるって事?
ローカルストレージが共通なのが多少問題だったから仕切ったってわけか?
391デフォルトの名無しさん
2016/08/22(月) 02:50:07.77ID:m1LOPf7I あー、つかお前らがよく使う言葉思い出したわ。
IndexedDBでもFileSystemAPIでも、
内部データを「追加/移動/削除」する為の機能を自分で作るのは、
「エクスプローラーの再開発」(車輪の再開発)なんだよ。
Windows上のエクスプローラーが使えたらそれが一番良いだろ。
ドラッグアンドドロップやプレビューの機能は全部持っているし、バグもないし。
つか何故いちいち「マイエクスプローラー」を開発しなければならんのよ?
これが>>379の勘違いに対するお前らの言葉での答えね。
そしてChromeは「マイエクスプローラー」の開発を強制するわけだ。
アホかねと。
IndexedDBでもFileSystemAPIでも、
内部データを「追加/移動/削除」する為の機能を自分で作るのは、
「エクスプローラーの再開発」(車輪の再開発)なんだよ。
Windows上のエクスプローラーが使えたらそれが一番良いだろ。
ドラッグアンドドロップやプレビューの機能は全部持っているし、バグもないし。
つか何故いちいち「マイエクスプローラー」を開発しなければならんのよ?
これが>>379の勘違いに対するお前らの言葉での答えね。
そしてChromeは「マイエクスプローラー」の開発を強制するわけだ。
アホかねと。
392デフォルトの名無しさん
2016/08/22(月) 07:34:32.01ID:utwn7AiT >>390
ブラウザってパソコン以外にも乗るじゃん。
その時、ファイルシステムなんて存在しないかもしれないよ。
って話。
>>390
例えば、なんかのアプリで保存したパスワードなんかを、別のアプリから覗き見出来ないようになってる。
>>391
世界中の人がWindowsのエクスプローラやマックのFinder使ってるから訳じゃないんだよw
内部データを追加、移動、削除するってのは、つきつめたらそれが機能なんだから。
お前が使いたいのがたまたまエクスプローラなだけだから、そう思うんだろうけど。
マイエクスプローラーではなくて、自分が使いやすいUI作れよ。
それか、どっかポート開けてwebDAVででも晒してローカルでマウントさせろ。
ブラウザってパソコン以外にも乗るじゃん。
その時、ファイルシステムなんて存在しないかもしれないよ。
って話。
>>390
例えば、なんかのアプリで保存したパスワードなんかを、別のアプリから覗き見出来ないようになってる。
>>391
世界中の人がWindowsのエクスプローラやマックのFinder使ってるから訳じゃないんだよw
内部データを追加、移動、削除するってのは、つきつめたらそれが機能なんだから。
お前が使いたいのがたまたまエクスプローラなだけだから、そう思うんだろうけど。
マイエクスプローラーではなくて、自分が使いやすいUI作れよ。
それか、どっかポート開けてwebDAVででも晒してローカルでマウントさせろ。
393デフォルトの名無しさん
2016/08/22(月) 10:56:09.85ID:uzkoNVx4 どうしてこういう人は、ライブラリを作ろうとはしないんだろう。
ディレクトリ一覧を帰す関数、あるディレクトリのディレクトリとファイル一覧を帰す関数、ファイルを新規、取得、更新、削除する関数を作っときゃ、それらの下回りがindexedDBだろうがサーバ関数だろうが関係無く透過的に扱えんじゃねえの?
それこそ、内部実装無視してindexedDBに行ごとに入れようが、クソでかいオブジェクトとして入れようが、はたまたサーバに入れようが、ご希望の動きがすぐ書けると思うんだけど。
ディレクトリ一覧を帰す関数、あるディレクトリのディレクトリとファイル一覧を帰す関数、ファイルを新規、取得、更新、削除する関数を作っときゃ、それらの下回りがindexedDBだろうがサーバ関数だろうが関係無く透過的に扱えんじゃねえの?
それこそ、内部実装無視してindexedDBに行ごとに入れようが、クソでかいオブジェクトとして入れようが、はたまたサーバに入れようが、ご希望の動きがすぐ書けると思うんだけど。
394デフォルトの名無しさん
2016/08/22(月) 21:30:14.52ID:m1LOPf7I すまぬ、>>358は間違い。
upgradeのときはe.target.transactionが最初から入っている。
昨日も確認したのだが、どうやら間違えたようだ。
これで修正出来たかは確認中。
これとは別に、createObjectStoreのoncompleteが少し早いタイミングで返ってくるらしく、
oncomplete直後にput等をせずに終了するとエラーになる。
これはupgradeのtransactionが並列出来ないということなので、
一旦closeして開きなおして並列性を高めようとしたが、失敗した。
upgradeのときはe.target.transactionが最初から入っている。
昨日も確認したのだが、どうやら間違えたようだ。
これで修正出来たかは確認中。
これとは別に、createObjectStoreのoncompleteが少し早いタイミングで返ってくるらしく、
oncomplete直後にput等をせずに終了するとエラーになる。
これはupgradeのtransactionが並列出来ないということなので、
一旦closeして開きなおして並列性を高めようとしたが、失敗した。
395デフォルトの名無しさん
2016/08/22(月) 21:40:34.14ID:m1LOPf7I >>392
未来のストレージがどうなるかは別の話だ。
FileSystemAPIはオレオレエクスプローラの再開発をしなくて良いのが利点であって、
それがないのならゴミでしかない。
お前が色々再開発をするのは勝手だけど、大多数の人にとっては、
普段使っている物がそのまま使えるのが一番分かりやすいUIだ。
Webアプリ間での相互アクセスを禁止するのはいいとして、
OSからの透過アクセスを禁止する意味はない。
ブラウザアプリからは常にブラウザ経由になるのだから、
アクセス権限、unixで言う644とか755とかを管理するのが一番簡単。
何でそんな糞仕様にしたのか意味不明。
ていうかChromeではBlobをIndexedDBにいれれないのか。使えねえ。
IndexedDBで両対応という作戦は頓挫した。根本的に練り直しだ。
てかマジでこの辺統一しろよな。
> While Firefox supports blob storage for IndexedDB,
> Chrome currently does not (Chrome is still implementing support for blob storage in IndexedDB).
> If you are targeting Chrome for your app and you want to store blobs,
> the File System API and App Cache are your only choices.
> However, AppCache storage isn't locally mutable,
> and doesn't allow for fine-grained client-side management.
> https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Introduction
未来のストレージがどうなるかは別の話だ。
FileSystemAPIはオレオレエクスプローラの再開発をしなくて良いのが利点であって、
それがないのならゴミでしかない。
お前が色々再開発をするのは勝手だけど、大多数の人にとっては、
普段使っている物がそのまま使えるのが一番分かりやすいUIだ。
Webアプリ間での相互アクセスを禁止するのはいいとして、
OSからの透過アクセスを禁止する意味はない。
ブラウザアプリからは常にブラウザ経由になるのだから、
アクセス権限、unixで言う644とか755とかを管理するのが一番簡単。
何でそんな糞仕様にしたのか意味不明。
ていうかChromeではBlobをIndexedDBにいれれないのか。使えねえ。
IndexedDBで両対応という作戦は頓挫した。根本的に練り直しだ。
てかマジでこの辺統一しろよな。
> While Firefox supports blob storage for IndexedDB,
> Chrome currently does not (Chrome is still implementing support for blob storage in IndexedDB).
> If you are targeting Chrome for your app and you want to store blobs,
> the File System API and App Cache are your only choices.
> However, AppCache storage isn't locally mutable,
> and doesn't allow for fine-grained client-side management.
> https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Introduction
396デフォルトの名無しさん
2016/08/22(月) 21:41:45.37ID:m1LOPf7I >>393
それはお前が無能だからお前の周りも無能しかいないだけ。
それはお前が無能だからお前の周りも無能しかいないだけ。
397デフォルトの名無しさん
2016/08/23(火) 00:24:48.05ID:ua608nki398デフォルトの名無しさん
2016/08/23(火) 00:49:53.34ID:fTj2N0cj 今のところはそのつもりだ。cscriptと併用する。
Unix使いならcron位自分で書けということでいい。
もちろん他にいい方法が見つかったら変更する。
長期的運用を考えた場合、
ブラウザがクラッシュした時に破損する可能性がある場所はアーカイブとしては使えない。
また他アーカイバも既にあるので、それらとの相互運用を考えた場合も、
生ファイルシステムでないと駄目だ。
格好は悪いがこれが運用上は一番マシだ。
まあもうちょっと考えるが。
Unix使いならcron位自分で書けということでいい。
もちろん他にいい方法が見つかったら変更する。
長期的運用を考えた場合、
ブラウザがクラッシュした時に破損する可能性がある場所はアーカイブとしては使えない。
また他アーカイバも既にあるので、それらとの相互運用を考えた場合も、
生ファイルシステムでないと駄目だ。
格好は悪いがこれが運用上は一番マシだ。
まあもうちょっと考えるが。
399デフォルトの名無しさん
2016/08/23(火) 01:04:54.52ID:ua608nki400デフォルトの名無しさん
2016/08/23(火) 01:17:30.72ID:fTj2N0cj インストールが必要な時点でアウト。
というかお前は無駄にシステムをでかくする病気にかかっていると思うぞ。
というかお前は無駄にシステムをでかくする病気にかかっていると思うぞ。
401デフォルトの名無しさん
2016/08/23(火) 01:47:37.85ID:ua608nki402デフォルトの名無しさん
2016/08/23(火) 08:05:29.74ID:ZcVGgUHo システムをでかくする病気って言われても、要件が見えなさすぎるんだししゃーなくない?
サーバ側ではデータベースに入ってんだろ?じゃあリプレイスすりゃいいじゃん。
むしろ、サーバのデータベースは何者かわからん。
アーカイブってなんだそりゃ。何のどんなアーカイブかわからんし、さらにそれが階層構造とか、階層構造はデータベースに入れられない()とか不思議発言過ぎるんじゃねえか?
サーバ側ではデータベースに入ってんだろ?じゃあリプレイスすりゃいいじゃん。
むしろ、サーバのデータベースは何者かわからん。
アーカイブってなんだそりゃ。何のどんなアーカイブかわからんし、さらにそれが階層構造とか、階層構造はデータベースに入れられない()とか不思議発言過ぎるんじゃねえか?
403デフォルトの名無しさん
2016/08/23(火) 08:18:51.01ID:exF8NocQ >>395
お前一体何時の記事見てんだよ。
MDNに頼るにしても最低でもLast updatedくらい見ろ。
もう何年も前にサポートされてるわ。
この手の情報は半年経つともう古い。
そして最終的にはブラウザのissuesやcommitsやソースコードを読まないと確かなことは言えない。
独自実装・勝手解釈・消費期限切れの塊であるMDNに1から10まで頼るのは危険。
お前一体何時の記事見てんだよ。
MDNに頼るにしても最低でもLast updatedくらい見ろ。
もう何年も前にサポートされてるわ。
この手の情報は半年経つともう古い。
そして最終的にはブラウザのissuesやcommitsやソースコードを読まないと確かなことは言えない。
独自実装・勝手解釈・消費期限切れの塊であるMDNに1から10まで頼るのは危険。
404デフォルトの名無しさん
2016/08/23(火) 11:20:47.03ID:ZcVGgUHo というかね、ミニマムなコード片書いてくれればいいと思うんだが。
書いて、あ、Blob入るじゃんって気づくから。
入らなければbase64なりにして突っ込みゃ良いだけだし。
そのまんま、自分のライブラリになると思うけど。
書いて、あ、Blob入るじゃんって気づくから。
入らなければbase64なりにして突っ込みゃ良いだけだし。
そのまんま、自分のライブラリになると思うけど。
405デフォルトの名無しさん
2016/08/23(火) 11:32:18.33ID:ZcVGgUHo ファイルが保存できればそれでいい、って言う割には、階層が、とか、自分の実装に凝り固まり過ぎだろ。
ただのrdbでもindexedDBでも
フルパス|[パス,,]|ファイル名|拡張子|中身|更新日などの情報|
って形で保存すりゃなんとでもなるだろ、常識的に考えて。
パスは、
file://
file://home
file://home/xxxxx
file://home/xxxxx/yyyyy
の配列で持っといて。
あるパス以下の物→パスで絞れば一撃
あるファイル→ファイル名で一撃
あるパスのあるファイル名→フルパスで一撃
でカーソル取れんじゃん。
あとはよしなに処理すりゃいいんじゃねえの?その為のトランザクションなんだし。
ディレクトリごとにストア分けて、ディレクトリを削除するのに、トランザクション何個も張る羽目になるっしょ。
ただのrdbでもindexedDBでも
フルパス|[パス,,]|ファイル名|拡張子|中身|更新日などの情報|
って形で保存すりゃなんとでもなるだろ、常識的に考えて。
パスは、
file://
file://home
file://home/xxxxx
file://home/xxxxx/yyyyy
の配列で持っといて。
あるパス以下の物→パスで絞れば一撃
あるファイル→ファイル名で一撃
あるパスのあるファイル名→フルパスで一撃
でカーソル取れんじゃん。
あとはよしなに処理すりゃいいんじゃねえの?その為のトランザクションなんだし。
ディレクトリごとにストア分けて、ディレクトリを削除するのに、トランザクション何個も張る羽目になるっしょ。
406デフォルトの名無しさん
2016/08/23(火) 21:49:08.63ID:fTj2N0cj >>403
おおありがとう。Blobサポート済みか。
となるとボツではなくなった。
記事は古いとは思ったが、政治的案件は時間では解決しないから、どうせ駄目だと思っていた。
>>401
いやcscript併用案はもう既に動いている。
考え方は簡単で、ブラウザで出来ないのはローカルファイルのサポートだから、
それをcscriptにやらせるということ。
とはいえ読み出しには手動で指定が必要だから、それとどっちがマシかということになる。
俺が勘違いしていたFileSystemAPIは
・ブラウザ側で「あるディレクトリ」を指定。これはブラウザ側で手動でしか出来ない。
(指定方法の取り扱いは「ダウンロード」フォルダと同じ)
・そのディレクトリ以下は読み書き自由。
だった。
もちろん生ファイルシステムでOS側からは直接読み書き変更可能。
ブラウザ側からのアクセスはWebアプリ毎にアクセス権が設定されている。
というかこれ以外のFileSystemAPIなんてゴミだろ。
あの糞仕様なら誰も使わない。使う意味無いし。
JavaScript界隈で思うのは、「使ってない奴」「三流プログラマ」が仕様を策定しているということ。
だから「使えない」「使いにくい」仕様が溢れかえっている。FileSystemAPIがゴミなのもこのため。
従来は仕様策定に関われる時点でそれなりの実力者しかいないからこういう事はなかったが、
良くも悪しくもJavaScriptはWebだって事だね。
>>405
つ薬
おおありがとう。Blobサポート済みか。
となるとボツではなくなった。
記事は古いとは思ったが、政治的案件は時間では解決しないから、どうせ駄目だと思っていた。
>>401
いやcscript併用案はもう既に動いている。
考え方は簡単で、ブラウザで出来ないのはローカルファイルのサポートだから、
それをcscriptにやらせるということ。
とはいえ読み出しには手動で指定が必要だから、それとどっちがマシかということになる。
俺が勘違いしていたFileSystemAPIは
・ブラウザ側で「あるディレクトリ」を指定。これはブラウザ側で手動でしか出来ない。
(指定方法の取り扱いは「ダウンロード」フォルダと同じ)
・そのディレクトリ以下は読み書き自由。
だった。
もちろん生ファイルシステムでOS側からは直接読み書き変更可能。
ブラウザ側からのアクセスはWebアプリ毎にアクセス権が設定されている。
というかこれ以外のFileSystemAPIなんてゴミだろ。
あの糞仕様なら誰も使わない。使う意味無いし。
JavaScript界隈で思うのは、「使ってない奴」「三流プログラマ」が仕様を策定しているということ。
だから「使えない」「使いにくい」仕様が溢れかえっている。FileSystemAPIがゴミなのもこのため。
従来は仕様策定に関われる時点でそれなりの実力者しかいないからこういう事はなかったが、
良くも悪しくもJavaScriptはWebだって事だね。
>>405
つ薬
407デフォルトの名無しさん
2016/08/23(火) 22:55:54.15ID:exF8NocQ exeみたいな実行形式やそのOSで特別な意味を表すシステムファイル等として書き出されちゃまずいので実態は偽装される様になってる。
ゴミというか、実験的で気まぐれな機能。もう何年も更新されていない。
誰も使わない、でもブラウザ内部では使われている。別に広く使われることを期待されていない。
IndexedDBやCacheDBの存在で意義をなくしつつある。
柔軟に検索したいなら前者、そうでないのなら後者をどうぞ。
君が望むようなファイルシステムAPIなどがなかなか策定されないのは幾つか理由がある。
でも技術的要因は取り除かれてきた(例えばPermissions API、Web App Manifest)ので、
あとは需要と雛形とブラウザベンダーのやる気次第。
とはいえ今はCSSや他の比較的低レベルなAPIが盛り上がっていて注力してるから後回しだろう。
W3CのMLを見ても「いくつか議論の余地がある」レベルの関心だ。
今はまだアイディアを貯めている段階だろう。
ゴミというか、実験的で気まぐれな機能。もう何年も更新されていない。
誰も使わない、でもブラウザ内部では使われている。別に広く使われることを期待されていない。
IndexedDBやCacheDBの存在で意義をなくしつつある。
柔軟に検索したいなら前者、そうでないのなら後者をどうぞ。
君が望むようなファイルシステムAPIなどがなかなか策定されないのは幾つか理由がある。
でも技術的要因は取り除かれてきた(例えばPermissions API、Web App Manifest)ので、
あとは需要と雛形とブラウザベンダーのやる気次第。
とはいえ今はCSSや他の比較的低レベルなAPIが盛り上がっていて注力してるから後回しだろう。
W3CのMLを見ても「いくつか議論の余地がある」レベルの関心だ。
今はまだアイディアを貯めている段階だろう。
408デフォルトの名無しさん
2016/08/23(火) 23:01:47.75ID:exF8NocQ あーでもやっぱりそろそろ動き出すかもな。
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/_6Euwqv366U
これが落ち着けば足回りが揃うから。
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/_6Euwqv366U
これが落ち着けば足回りが揃うから。
409デフォルトの名無しさん
2016/08/23(火) 23:50:21.90ID:fTj2N0cj >>407
> exeみたいな実行形式
Webアプリから起動出来なければこれは問題無いだろ。
> OSで特別な意味を表すシステムファイル等
要するにシンボリックリンク等で全部筒抜けになる場合だろ。
これも結局Webアプリ側はブラウザを通しての作成しか出来ないので、それを止めればいいだけ。
OS側からシンボリックリンクを貼ったり、exeを置くのは自由でいい。
Webアプリ側でexeを起動出来ず、シンボリックリンク等を作成出来なければいいだけ。
つまりファイルは「データ」としてしか扱えないという、実装するにも至極簡単な制限でしかない。
FileSystemAPIははっきり言って使う気がない仕様を策定してる。だったら策定しない方がマシ。
まあ策定してから捨てるというのがJavaScript流ではあるようだが。
> IndexedDBやCacheDBの存在で意義をなくしつつある。
結局の所、「勝手に削除される可能性がある」時点でアーカイブとしては使えない。
見たところここを保証する気はなさそうなので、
今回俺がこれらをメインに据えることは出来ないし、
どのみち「削除されない」ストレージも必要になると思う。
> exeみたいな実行形式
Webアプリから起動出来なければこれは問題無いだろ。
> OSで特別な意味を表すシステムファイル等
要するにシンボリックリンク等で全部筒抜けになる場合だろ。
これも結局Webアプリ側はブラウザを通しての作成しか出来ないので、それを止めればいいだけ。
OS側からシンボリックリンクを貼ったり、exeを置くのは自由でいい。
Webアプリ側でexeを起動出来ず、シンボリックリンク等を作成出来なければいいだけ。
つまりファイルは「データ」としてしか扱えないという、実装するにも至極簡単な制限でしかない。
FileSystemAPIははっきり言って使う気がない仕様を策定してる。だったら策定しない方がマシ。
まあ策定してから捨てるというのがJavaScript流ではあるようだが。
> IndexedDBやCacheDBの存在で意義をなくしつつある。
結局の所、「勝手に削除される可能性がある」時点でアーカイブとしては使えない。
見たところここを保証する気はなさそうなので、
今回俺がこれらをメインに据えることは出来ないし、
どのみち「削除されない」ストレージも必要になると思う。
410デフォルトの名無しさん
2016/08/23(火) 23:50:56.04ID:fTj2N0cj > Both Microsoft Edge and Mozilla Firefox are implementing the subsets documented in "File and Directory Entries API" for compatibility with Chrome in supporting Directory Upload.
正直これさっさと実装しろというのはある。
ディレクトリ指定出来ればUIが全然簡単になるから。
あとIndexedDBも全然こなれてない。
createObjectStore.oncompleteのタイミングがおかしいのは既に言ったが、(>>394)
それとは別にキューの実装もおかしい。
トランザクションがロールバック単位なので、
当初は各リクエストそのままで500トランザクションとか送ったら
「多すぎてキューに入りきりません」とエラーになった。
普通はキューは動的に確保すればいいので、500程度でオーバーフローとかアホかと思ったが、
そんなことを言っていても仕方ないので数珠繋ぎ方式に変更、トランザクションは数個に絞った。
ただそれでもごく偶に、しかも一つ目のトランザクションで同じエラーがでる。
つまり、IndexedDBのキューの実装はバグってる。
なおChrome50。Vistaなのでこれ以上更新出来ないし。
結局の所、大多数が使っている機能じゃないとバグ報告が上がってなくてバグが残っている。
IndexedDBもまだその程度だよ。安心しては使えない。
ただ従来方式の「ダウンロードリンク」を使うにしても、
1日10万ダウンロードとかになるので大丈夫なのか?という疑問はあるが、これも試すしかない。
(ダウンロードは履歴が残るようになっているので、手動ではあり得ないほどの数になると、
履歴がオーバフローするバグが残っているのではないかと恐れている。
これも知ってたら教えて欲しいが。)
正直これさっさと実装しろというのはある。
ディレクトリ指定出来ればUIが全然簡単になるから。
あとIndexedDBも全然こなれてない。
createObjectStore.oncompleteのタイミングがおかしいのは既に言ったが、(>>394)
それとは別にキューの実装もおかしい。
トランザクションがロールバック単位なので、
当初は各リクエストそのままで500トランザクションとか送ったら
「多すぎてキューに入りきりません」とエラーになった。
普通はキューは動的に確保すればいいので、500程度でオーバーフローとかアホかと思ったが、
そんなことを言っていても仕方ないので数珠繋ぎ方式に変更、トランザクションは数個に絞った。
ただそれでもごく偶に、しかも一つ目のトランザクションで同じエラーがでる。
つまり、IndexedDBのキューの実装はバグってる。
なおChrome50。Vistaなのでこれ以上更新出来ないし。
結局の所、大多数が使っている機能じゃないとバグ報告が上がってなくてバグが残っている。
IndexedDBもまだその程度だよ。安心しては使えない。
ただ従来方式の「ダウンロードリンク」を使うにしても、
1日10万ダウンロードとかになるので大丈夫なのか?という疑問はあるが、これも試すしかない。
(ダウンロードは履歴が残るようになっているので、手動ではあり得ないほどの数になると、
履歴がオーバフローするバグが残っているのではないかと恐れている。
これも知ってたら教えて欲しいが。)
411デフォルトの名無しさん
2016/08/24(水) 00:44:52.82ID:dKh15413412デフォルトの名無しさん
2016/08/24(水) 00:48:32.19ID:1m5/CfUP >>410
トランザクションがROLLBACK単位とか言うか
適宜コミットして、setTimeoutで遅延させてつかえよ。
ボンクラすぎるだろ。
タイミングも合ってるよ。
脳みそ腐ってないならば、ぜんコード上げてみろよ。見てやるから。
トランザクションがROLLBACK単位とか言うか
適宜コミットして、setTimeoutで遅延させてつかえよ。
ボンクラすぎるだろ。
タイミングも合ってるよ。
脳みそ腐ってないならば、ぜんコード上げてみろよ。見てやるから。
413デフォルトの名無しさん
2016/08/24(水) 00:52:22.97ID:7vNot/FK IndexedDBが小慣れていないと言われてるのは周知の事実。
が、機能は揃っているので上で言われてるように
大抵皆ライブラリを書いたり、使ったりして問題なく過ごしている。
君のここまでの書き込みは全然建設的じゃないし、
ほんとにバグがあるのか、もしくは君の方がが小慣れていないのかが分からない。
結果、ただの愚痴にしか聞こえずそれに対して何も言えることはない。
せめて再現するための最低限のコードを載せてくれ。
あと10万ダウンロードはやめとけ。ZIPなどに圧縮すればいい。
もしくはもう一般WebAPIだけで作るの諦めろ。
一般公開するかは知らんが、それだけの機能なら
拡張機能もしくはブラウザアプリにしてインストール必須にしても構わないだろう。
が、機能は揃っているので上で言われてるように
大抵皆ライブラリを書いたり、使ったりして問題なく過ごしている。
君のここまでの書き込みは全然建設的じゃないし、
ほんとにバグがあるのか、もしくは君の方がが小慣れていないのかが分からない。
結果、ただの愚痴にしか聞こえずそれに対して何も言えることはない。
せめて再現するための最低限のコードを載せてくれ。
あと10万ダウンロードはやめとけ。ZIPなどに圧縮すればいい。
もしくはもう一般WebAPIだけで作るの諦めろ。
一般公開するかは知らんが、それだけの機能なら
拡張機能もしくはブラウザアプリにしてインストール必須にしても構わないだろう。
414デフォルトの名無しさん
2016/08/24(水) 02:09:31.50ID:fG60fvYz >>413
> ほんとにバグがあるのか、もしくは君の方がが小慣れていないのかが分からない。
これはその通り。当初の>>358は間違いだったからね。
ただ仕様は大体理解したので、多分>>394と>>410はバグだ。
とはいえ切り分けはしない。
最新版が使えない状況で切り分けて報告する意味はないので無駄だから。
(最新版では既に治っているかもしれない)
俺については「バグがある」という認識で使うか、使うのを止めるかでしかない。
つまり他の方法も試して一番マシな方法を使うだけ。
ちなみにchromiumに対してバグ報告もしたことあるし、受け付けられてもいるよ。
ただそれをやるにしてもここでやる意味はない。直接報告すればいいだけ。
コードはここには上げない。
コピペすればいいだけのコードすら協力してくれないお前らに対して期待はしていないし、(>>270,279)
話を聞く限りお前らの腕前/デバッグ出来る範囲を完全に超えている。
コードを上げてもお前らでは何も出来ないよ。
いずれにしても既に公開はしているから、勝手に探せばいい。
100kダウンロードはその話だと試したわけではないんだろ?だったら俺が試すだけだよ。
ZIP化してもいいが取り扱いが面倒になるだけだから、いければ生ファイルで行く。
> 拡張機能もしくはブラウザアプリにしてインストール必須にしても構わないだろう。
これは何が違うんだ?調べた限りでは大差ないようだったが、違うのか?
なお今回欲しい機能は以下。
・ローカルファイルからのユーザ指定無しでの読み込み
・ダウンロード時のフォルダ指定(階層化したフォルダに対してのダウンロード先指定)
これらが出来るのなら乗り換えを検討する。
ちなみに今のところGreaseMonkeyで不自由していない。
ただ、GM専用機能も使ってないので、乗り換えは出来る。
> ほんとにバグがあるのか、もしくは君の方がが小慣れていないのかが分からない。
これはその通り。当初の>>358は間違いだったからね。
ただ仕様は大体理解したので、多分>>394と>>410はバグだ。
とはいえ切り分けはしない。
最新版が使えない状況で切り分けて報告する意味はないので無駄だから。
(最新版では既に治っているかもしれない)
俺については「バグがある」という認識で使うか、使うのを止めるかでしかない。
つまり他の方法も試して一番マシな方法を使うだけ。
ちなみにchromiumに対してバグ報告もしたことあるし、受け付けられてもいるよ。
ただそれをやるにしてもここでやる意味はない。直接報告すればいいだけ。
コードはここには上げない。
コピペすればいいだけのコードすら協力してくれないお前らに対して期待はしていないし、(>>270,279)
話を聞く限りお前らの腕前/デバッグ出来る範囲を完全に超えている。
コードを上げてもお前らでは何も出来ないよ。
いずれにしても既に公開はしているから、勝手に探せばいい。
100kダウンロードはその話だと試したわけではないんだろ?だったら俺が試すだけだよ。
ZIP化してもいいが取り扱いが面倒になるだけだから、いければ生ファイルで行く。
> 拡張機能もしくはブラウザアプリにしてインストール必須にしても構わないだろう。
これは何が違うんだ?調べた限りでは大差ないようだったが、違うのか?
なお今回欲しい機能は以下。
・ローカルファイルからのユーザ指定無しでの読み込み
・ダウンロード時のフォルダ指定(階層化したフォルダに対してのダウンロード先指定)
これらが出来るのなら乗り換えを検討する。
ちなみに今のところGreaseMonkeyで不自由していない。
ただ、GM専用機能も使ってないので、乗り換えは出来る。
415デフォルトの名無しさん
2016/08/24(水) 02:10:28.07ID:fG60fvYz > 君のここまでの書き込みは全然建設的じゃないし、(中略)
> 結果、ただの愚痴にしか聞こえずそれに対して何も言えることはない。
上記の通り、俺は相談以上の期待をお前らに対してはしていない。
だから気に入らなければレスくれなくていい。
(上記経験により俺もそういう距離感で行くことにしたから)
そちらも分かるように、どこまでの情報があれば何を回答出来るかはこちらも分かっている。
その上で書いているのだから、それについては無理という件については無視でいい。
馬鹿共は置き去りにしないとスレのレベルが上がらない。
その上でバグ確認に協力してくれるというのなら、
それは申し訳ないが今回はそこに踏み込む気はない。
理由は上記どおり、最新版でないと意味無いから。
そちらが既にバグに当たらない記述のライブラリなりを持っているのならそれで問題ないわけだし。
心配せずともchromeなんてバグだらけだぞ。
こなれていないところに踏み込んだらすぐに遭遇する。
それはそちらも知っていると思うが。
君らは気に入らないかもしれないが、俺は情報をくれた奴には感謝している。
ただ君らが「持ちつ持たれつ」という感覚を持ち合わせていないことも学習したから、
君らに大して期待もしていない。だから再度言うが、気に入らなければ無視でいい。
(というかこれまでの俺が甘かっただけで、本来は君らのスタンスの方がここには向いている)
> 結果、ただの愚痴にしか聞こえずそれに対して何も言えることはない。
上記の通り、俺は相談以上の期待をお前らに対してはしていない。
だから気に入らなければレスくれなくていい。
(上記経験により俺もそういう距離感で行くことにしたから)
そちらも分かるように、どこまでの情報があれば何を回答出来るかはこちらも分かっている。
その上で書いているのだから、それについては無理という件については無視でいい。
馬鹿共は置き去りにしないとスレのレベルが上がらない。
その上でバグ確認に協力してくれるというのなら、
それは申し訳ないが今回はそこに踏み込む気はない。
理由は上記どおり、最新版でないと意味無いから。
そちらが既にバグに当たらない記述のライブラリなりを持っているのならそれで問題ないわけだし。
心配せずともchromeなんてバグだらけだぞ。
こなれていないところに踏み込んだらすぐに遭遇する。
それはそちらも知っていると思うが。
君らは気に入らないかもしれないが、俺は情報をくれた奴には感謝している。
ただ君らが「持ちつ持たれつ」という感覚を持ち合わせていないことも学習したから、
君らに大して期待もしていない。だから再度言うが、気に入らなければ無視でいい。
(というかこれまでの俺が甘かっただけで、本来は君らのスタンスの方がここには向いている)
416デフォルトの名無しさん
2016/08/24(水) 02:47:00.24ID:fG60fvYz >>413
> IndexedDBが小慣れていないと言われてるのは周知の事実。
ちなみに俺はJavaScript屋ではないから、
こういう、「周知の事実」ってのは知らない情報だ。
だから君にとっては大したことなくても、俺にとっては助かっている。
その「周知の事実」にアクセス出来る人に対してこちらから提供出来る情報はほぼ無い。
せいぜい遭遇した事実/外部目線で見た感想を垂れ流すことくらいだ。
で、これを既にやっているわけだが、
結果、愚痴にしか見えないというのなら、それはそれで仕方ない。
残念ながら、こちらが「情報交換」として提供出来るのはこの程度でしかないんだよ。
何が君らにとって有意義な情報かもこちらには分からない。
だからとりあえず垂れ流すのみ。
> IndexedDBが小慣れていないと言われてるのは周知の事実。
ちなみに俺はJavaScript屋ではないから、
こういう、「周知の事実」ってのは知らない情報だ。
だから君にとっては大したことなくても、俺にとっては助かっている。
その「周知の事実」にアクセス出来る人に対してこちらから提供出来る情報はほぼ無い。
せいぜい遭遇した事実/外部目線で見た感想を垂れ流すことくらいだ。
で、これを既にやっているわけだが、
結果、愚痴にしか見えないというのなら、それはそれで仕方ない。
残念ながら、こちらが「情報交換」として提供出来るのはこの程度でしかないんだよ。
何が君らにとって有意義な情報かもこちらには分からない。
だからとりあえず垂れ流すのみ。
417デフォルトの名無しさん
2016/08/24(水) 07:24:26.62ID:dKh15413 何様かわからんな。
出せる情報もなく、教えてくれって虫が良すぎるだろ。
Qiitaにでも行ってくれば?
出せる情報もなく、教えてくれって虫が良すぎるだろ。
Qiitaにでも行ってくれば?
418デフォルトの名無しさん
2016/08/24(水) 08:19:51.08ID:u65p5RKL 俺はindexedDBを商用製品に普通に使ってる(しかも、ローカルへのキャッシュとして)から、ぶっちゃけどんなドヤされても、こいつの書いた実装が悪いんだろうなとしか思えん。
トランザクションで500件を超えるって、そんなデカいアトミックな操作が思いつかんレベル。
ファイルの取得であれば、保存できればそれでワントランザクションだろ。
関数越えてトランザクション持って回って、どっかで非同期な呼び出しがあってカーソル見失った瞬間にトランザクション失敗してるんじゃねえの?
とかそんな感想。
ある一定バージョンのファイルセットが取得できるまでをトランザクションと見なすなら、バージョンごとに仮データとして保存するトランザクションと、
古いセットを削除して、仮データを有効データに更新するトランザクションの二本で充分でしょ。
なんで、自分より相手方の方が馬鹿に違いない、と思えるのかわからん。
俺もコミッタだけど、その発想でプルリク投げた事は無いわ。
トランザクションで500件を超えるって、そんなデカいアトミックな操作が思いつかんレベル。
ファイルの取得であれば、保存できればそれでワントランザクションだろ。
関数越えてトランザクション持って回って、どっかで非同期な呼び出しがあってカーソル見失った瞬間にトランザクション失敗してるんじゃねえの?
とかそんな感想。
ある一定バージョンのファイルセットが取得できるまでをトランザクションと見なすなら、バージョンごとに仮データとして保存するトランザクションと、
古いセットを削除して、仮データを有効データに更新するトランザクションの二本で充分でしょ。
なんで、自分より相手方の方が馬鹿に違いない、と思えるのかわからん。
俺もコミッタだけど、その発想でプルリク投げた事は無いわ。
419デフォルトの名無しさん
2016/08/24(水) 08:36:10.31ID:u65p5RKL ダウンロードリンク、の代わりにindexedDB使う発想がわからん。
何がどこにどうダウンロードされるんだろう。
それはローカルに持ってたらどう便利なんだろう≒ローカルにあれば二度と押さないボタンなんだろうか?
なんか(アーカイブってのが何のアーカイブかはわからんが)ウェブから取得させるときに、二回目以降はそのクライアントのデータを使わせて、ダウンロードしたフリすれば良いの?
サービスワーカーで書いちゃだめなの?その処理。
何がどこにどうダウンロードされるんだろう。
それはローカルに持ってたらどう便利なんだろう≒ローカルにあれば二度と押さないボタンなんだろうか?
なんか(アーカイブってのが何のアーカイブかはわからんが)ウェブから取得させるときに、二回目以降はそのクライアントのデータを使わせて、ダウンロードしたフリすれば良いの?
サービスワーカーで書いちゃだめなの?その処理。
420デフォルトの名無しさん
2016/08/24(水) 08:45:06.93ID:7vNot/FK >>416
おいおい、はぶてんなってw
建設的でないどころではなくなってるぞ。
これだけ皆が比較的長文で沢山レスして構ってくれてるんだから
あとは君の態度次第で強力な仲間となるだろうよ。
答えをもらう代わりに問題をきちんと問題として認識できる形であげれば
それで十分「交換」になる。
あとDLに関しては500くらいで試してみて。
確かpermissionの取り方によるのか知らんが50か100毎に確認出たはずだから。
ファイルごとにオーバーヘッドもかかるだろうしアーカイブ化した方がいい。
おいおい、はぶてんなってw
建設的でないどころではなくなってるぞ。
これだけ皆が比較的長文で沢山レスして構ってくれてるんだから
あとは君の態度次第で強力な仲間となるだろうよ。
答えをもらう代わりに問題をきちんと問題として認識できる形であげれば
それで十分「交換」になる。
あとDLに関しては500くらいで試してみて。
確かpermissionの取り方によるのか知らんが50か100毎に確認出たはずだから。
ファイルごとにオーバーヘッドもかかるだろうしアーカイブ化した方がいい。
421デフォルトの名無しさん
2016/08/25(木) 00:05:19.06ID:eAOsu6G6 >>420
1日500DLなら現在味見中で、既に2週間ほど動作して問題は発生していない。
確認は一度も出ていない。ただ、出る環境の場合はこれは使えないのも確かだ。
まあ500DLなら人力でも十分あり得る範囲、さすがにこれでバグ遭遇はない。
ローレベルでのファイルのオーバーヘッドはない。
そもそも自動アーカイブはほぼ書き込みばかりだから投げ捨てだ。
また、データの大半はjpg等の圧縮済みファイルだ。
(個数としてはテキストの方が多いがjpg一枚でおつりが来る)
だからzipというよりtarなんだが、それもしない方がいいだろうという読みだ。
まあここら辺はこちらで試す。
> あとは君の態度次第で強力な仲間となるだろうよ。
セミコロンの位置でドヤア()、文法でドヤア()する奴がいくら居たって邪魔なだけ。
俺について助けになるのは、プログラミング上級者(10k行のコードを平気でメンテ出来る)か、
俺以上にJavaScriptの仕様に詳しい連中だけだ。
後者については俺がJavaScripterではないのでここの連中でも当てはまるケースも多い。
それが俺がここにいる理由。
前者について当てはまるのはここには居ても数人だ。
だから内部構成についての指摘は大半が俺から見ればデタラメに過ぎなく、ウザイだけ。
よって、そっちに流れないように上位アーキテクチャの話に絞っているわけでね。
1日500DLなら現在味見中で、既に2週間ほど動作して問題は発生していない。
確認は一度も出ていない。ただ、出る環境の場合はこれは使えないのも確かだ。
まあ500DLなら人力でも十分あり得る範囲、さすがにこれでバグ遭遇はない。
ローレベルでのファイルのオーバーヘッドはない。
そもそも自動アーカイブはほぼ書き込みばかりだから投げ捨てだ。
また、データの大半はjpg等の圧縮済みファイルだ。
(個数としてはテキストの方が多いがjpg一枚でおつりが来る)
だからzipというよりtarなんだが、それもしない方がいいだろうという読みだ。
まあここら辺はこちらで試す。
> あとは君の態度次第で強力な仲間となるだろうよ。
セミコロンの位置でドヤア()、文法でドヤア()する奴がいくら居たって邪魔なだけ。
俺について助けになるのは、プログラミング上級者(10k行のコードを平気でメンテ出来る)か、
俺以上にJavaScriptの仕様に詳しい連中だけだ。
後者については俺がJavaScripterではないのでここの連中でも当てはまるケースも多い。
それが俺がここにいる理由。
前者について当てはまるのはここには居ても数人だ。
だから内部構成についての指摘は大半が俺から見ればデタラメに過ぎなく、ウザイだけ。
よって、そっちに流れないように上位アーキテクチャの話に絞っているわけでね。
422デフォルトの名無しさん
2016/08/25(木) 07:26:33.09ID:kFTapBTb なーんだ
自分の手足となってくれる素直で言うこと聞いて優秀な部下もしくは奴隷がフリーで欲しいってことだったのか
サイコパスにちょっとでも強力しようと思った俺がバカだったわ
自分の手足となってくれる素直で言うこと聞いて優秀な部下もしくは奴隷がフリーで欲しいってことだったのか
サイコパスにちょっとでも強力しようと思った俺がバカだったわ
423デフォルトの名無しさん
2016/08/25(木) 08:20:27.91ID:99xpDjOR それにどうindexedDB使うのか全然わからん。
圧縮済みデータはそれ以上圧縮かからないから、圧縮しない、は
圧縮済みデータが一つのときだけじゃない?
エントロピーが偏れば圧縮は効くんだから、いくつか混ぜるとちゃんと圧縮は効くと思うけど。
そういう意味ではtarでアーカイブした上で、積極的な圧縮はせずに、Webサーバのgzip任せていいんでないの?
無駄な作り込みはバグ生むよ。
正直、普通に職業マやってたら、そんなステップ数のメンテは逆にしない。
逆に、しないように、スクラッチの時点でちゃんと切り分ける。
別に上級者気取りでも気にはしないけど、どう考えてもアーキが浮かばん。
アーキ屋何してんの?
何か情報を出すと俺のすごいシステムがパクられそうで怖い、みたいに聞こえるけど、そういうのって大体みんな通り過ぎて、王道はなるほど王道なんだな、って「そうしないだけ」だから、
気にせんで良いんじゃないの?
ホントに凄いかも!と思ったら、先にアイディアだけどっかに書いとけばいいよ。
圧縮済みデータはそれ以上圧縮かからないから、圧縮しない、は
圧縮済みデータが一つのときだけじゃない?
エントロピーが偏れば圧縮は効くんだから、いくつか混ぜるとちゃんと圧縮は効くと思うけど。
そういう意味ではtarでアーカイブした上で、積極的な圧縮はせずに、Webサーバのgzip任せていいんでないの?
無駄な作り込みはバグ生むよ。
正直、普通に職業マやってたら、そんなステップ数のメンテは逆にしない。
逆に、しないように、スクラッチの時点でちゃんと切り分ける。
別に上級者気取りでも気にはしないけど、どう考えてもアーキが浮かばん。
アーキ屋何してんの?
何か情報を出すと俺のすごいシステムがパクられそうで怖い、みたいに聞こえるけど、そういうのって大体みんな通り過ぎて、王道はなるほど王道なんだな、って「そうしないだけ」だから、
気にせんで良いんじゃないの?
ホントに凄いかも!と思ったら、先にアイディアだけどっかに書いとけばいいよ。
424デフォルトの名無しさん
2016/08/26(金) 18:32:39.75ID:wJ1YpBkQ425デフォルトの名無しさん
2016/08/26(金) 18:53:36.65ID:4RusDDpB もし本当に他者を見下してるように見えるんなら精神病院行ったほうが良い。
本当に見下してれば相手と会話したりしない。
本当に見下してれば相手と会話したりしない。
426デフォルトの名無しさん
2016/08/26(金) 23:31:04.14ID:LTYwvQxl バカほど人を見くびるもんだよ。
そして見くびれるからバカで居られる。
会話するメリットなんかいくらでもあるよ。ぬいぐるみは反抗しない「から。
反抗反論されると言うことは、自分の発言は反抗反論される程度の意味があんだ、むしろ相手が理解できない馬鹿なんだ」と思うことすらでき、一人で気持ちよくなれる。
そして見くびれるからバカで居られる。
会話するメリットなんかいくらでもあるよ。ぬいぐるみは反抗しない「から。
反抗反論されると言うことは、自分の発言は反抗反論される程度の意味があんだ、むしろ相手が理解できない馬鹿なんだ」と思うことすらでき、一人で気持ちよくなれる。
427デフォルトの名無しさん
2016/08/27(土) 05:01:58.71ID:T1cpNbqY 反抗しないぬいぐるみなんてここには居ないが?
後半は今回で言うと間違いなく ID:eAOsu6G6 の方だな
早く気付けよ
後半は今回で言うと間違いなく ID:eAOsu6G6 の方だな
早く気付けよ
2016/08/27(土) 05:49:03.76ID:eRYPSeFa
Slot
🍜🍜👻
💣💯🎴
💯🌸🍜
(LA: 0.55, 0.58, 0.53)
429デフォルトの名無しさん
2016/08/27(土) 09:23:29.57ID:4zJIWaih >>427
反抗するぬいぐるみが居るから、書きに来てるんだろ、って文書のつもりだったけど、眠くて誤字でわけわからん感じだな。すまん。
反抗するぬいぐるみが居るから、書きに来てるんだろ、って文書のつもりだったけど、眠くて誤字でわけわからん感じだな。すまん。
430デフォルトの名無しさん
2016/08/27(土) 21:50:54.70ID:T1cpNbqY よく分からんが反抗する側がバカにやり込められるのなら、
それはやり込められた側の方がもっと酷いんじゃないのか?
それはやり込められた側の方がもっと酷いんじゃないのか?
431デフォルトの名無しさん
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再生でいい。
・ダウンロードすれば出来るのか?しかし面倒なので出来ればダイレクトで。
以下知恵袋では「プレイヤーも自作」となっているので、
逆に言えばJavaScriptで高速プレイヤーを作成して入れ替えてしまえば可能なのか?
認証とかはさておき。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10160742165
具体的にはGyaoの動画を1.5-2倍速で再生したい。要求スペックは以下。
・個人的に使えればいい。つまりコマンド手打ちが必要でもいい。
・再生速度は固定でいい。つまり最初から1.5xか2xで固定、再生中の変更は必要ない。
・最悪バッファでもいい。つまり30分の動画なら15分バッファした後の2x再生でいい。
・ダウンロードすれば出来るのか?しかし面倒なので出来ればダイレクトで。
432デフォルトの名無しさん
2016/09/25(日) 19:27:04.48ID:r4NaSC4t スクリプトでURI解析→ネットワークに対応した外部プレーヤで再生
433デフォルトの名無しさん
2016/09/25(日) 21:06:19.30ID:Fmi0n6Ll 確かにそんなに難しく考える必要はないのかもね。
で、試してみたんだが、今のところ駄目だ。
データ取得先は当然あっさり分かる。
それをGOMプレイヤーに食わせてみた。
曰く、「ストリーミングサーバーが見つかりません」
ただGOMプレーヤー自体も滅多に使わないから、使い方が間違っているかも。
URLもこれでいいのかは謎だし。
なおAlquadeLiteも試したが、こちらは起動するもののFlashPlayerがクラッシュして駄目だった。
まあ何かあればよろしく。
で、試してみたんだが、今のところ駄目だ。
データ取得先は当然あっさり分かる。
それをGOMプレイヤーに食わせてみた。
曰く、「ストリーミングサーバーが見つかりません」
ただGOMプレーヤー自体も滅多に使わないから、使い方が間違っているかも。
URLもこれでいいのかは謎だし。
なおAlquadeLiteも試したが、こちらは起動するもののFlashPlayerがクラッシュして駄目だった。
まあ何かあればよろしく。
434デフォルトの名無しさん
2016/09/25(日) 23:14:29.89ID:Fmi0n6Ll 結局「GYAO動画ダウンローダJava」を使って高速再生は出来た。
ただし事前DLが必要だが、10倍速くらいでDL出来るので問題はない。
ただ正直ちょっと複雑だ。
こんなに簡単に出来るのなら公式で用意してくれよというのと、
意外に高速再生も快適ではないのでやっぱり用意する意味もないのかとも。
いずれにしても情報をくれた人はありがとう。
ただし事前DLが必要だが、10倍速くらいでDL出来るので問題はない。
ただ正直ちょっと複雑だ。
こんなに簡単に出来るのなら公式で用意してくれよというのと、
意外に高速再生も快適ではないのでやっぱり用意する意味もないのかとも。
いずれにしても情報をくれた人はありがとう。
435デフォルトの名無しさん
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」でもない。
サイトの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」でもない。
436デフォルトの名無しさん
2016/10/17(月) 00:31:40.71ID:B8wMv80N >>435
script タグでなくとも イベントハンドラ( onxxxx = )で動作するコードを注入されたら危険だろう
script タグでなくとも イベントハンドラ( onxxxx = )で動作するコードを注入されたら危険だろう
437デフォルトの名無しさん
2016/10/17(月) 01:16:39.60ID:XzUmA52N438デフォルトの名無しさん
2016/10/18(火) 13:06:11.48ID:GiAjO0tK ぶっちゃけいかなる脆弱性があったとしても、お金が関わるようなサイトでなければ関係ない
例えばある種のURLで飛ばされた時にXSS脆弱性があったとしても、
それは悪意のあるサイトから遷移したユーザーの責任。
それにCookieが抜かれようと変な表示がされようと何か致命的な問題になることはない。
いたずらレベル。
例えばある種のURLで飛ばされた時にXSS脆弱性があったとしても、
それは悪意のあるサイトから遷移したユーザーの責任。
それにCookieが抜かれようと変な表示がされようと何か致命的な問題になることはない。
いたずらレベル。
439デフォルトの名無しさん
2016/10/18(火) 22:14:37.24ID:8mVkPqez それはその通りだし、神経質にやる気はない。
逆にそのためのブラウザの制限に辟易している状況だし。
とはいえ、JSON_APIの中身がtextなのかHTML文字列なのかは気にしておかないといけない。
その上で、どこまでやるかを各プロジェクト毎に決めればいいこと。
逆にそのためのブラウザの制限に辟易している状況だし。
とはいえ、JSON_APIの中身がtextなのかHTML文字列なのかは気にしておかないといけない。
その上で、どこまでやるかを各プロジェクト毎に決めればいいこと。
440デフォルトの名無しさん
2016/10/19(水) 08:20:38.16ID:pQsxuliv そういうとこを気にするのは愚か
CSPを使い、それが通るように書けば良いだけ
CSPを使い、それが通るように書けば良いだけ
441デフォルトの名無しさん
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個くらいが適当かと思っている)
ただしいかんせん書き込んでくれない。
何かヒントあればよろしく。
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個くらいが適当かと思っている)
ただしいかんせん書き込んでくれない。
何かヒントあればよろしく。
442デフォルトの名無しさん
2016/11/21(月) 02:24:13.88ID:xTCFhIWI またお前か。
なぜそんな事をブラウザでやるか、それもindexedDBになぜ入れるかわからんが、
インデックス貼り過ぎではないか、
WebWorkerやServiceWorker使わずに表スレッドでやってないか
くらいかな。
スクレイプの方がはやい、DBの方が遅い、と言っても、同時に走るわけでは無いよ、ネイティブの機能でない限り。
なぜそんな事をブラウザでやるか、それもindexedDBになぜ入れるかわからんが、
インデックス貼り過ぎではないか、
WebWorkerやServiceWorker使わずに表スレッドでやってないか
くらいかな。
スクレイプの方がはやい、DBの方が遅い、と言っても、同時に走るわけでは無いよ、ネイティブの機能でない限り。
443デフォルトの名無しさん
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だからね。サイトのスクリプトではないからあしからず。
ただそれは実際には問題になっているようには見えないが。
もちろん同期APIは使ってない。
つまり当然非同期だし、表スレッドで待つことはない。
> 同時に走るわけでは無い
あまりにスループットが低いのが気になっているわけだが、
確かにこの意味では「詰まる」事はあり得ないのも事実だな。
> インデックス貼り過ぎではないか
こちらはインデックスは使っていない。
インデックス使わないと超遅いとかいうのも見かけたが、
(覚えでは)3-4年前の記事だったし、取り下げていたのであてにならないと見たが、使わないと駄目か?
こちらはキーパス無し、キージェネ無し。外部キーを自前で供給している。
(要するにlocalStorageの容量増加版として使用している。ただし非同期だからどうにも使いにくいが。)
> データベースを構築する
> キーパス キージェネレータ
> https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB
> なぜそんな事をブラウザでやるか
一番手軽だからだよ。ブラウズする時にはブラウザは必ず使う。
アーカイブ勝手に取れてれば楽でしょ。
別ソフト起動するのが面倒でない人はそうすればいい。
> indexedDB
ブラウザ側から「消せる」方が使い勝手がいいから。
なおファイルに落とす機能はもう完成済みで、サイトのミラーが勝手に構築出来るようになっている。
もちろん外部スクリプトでtarファイルを展開しなければならないが、これは仕様的に仕方ない。
IndexedDBはボロすぎて諦めていたんだが、微妙に使えそうになってきたので色気を出している。
というか俺はGreaseMonkeyだからね。サイトのスクリプトではないからあしからず。
444デフォルトの名無しさん
2016/11/21(月) 04:59:18.67ID:+MgjqZsm 愚直に1つずつ保存しようとするから愚直なパフォーマンスしかでない。
DBには圧縮ファイル1つしか保存しない。
利用するときは解凍してメモリ上で1つずつ読み書きする。
最後に圧縮して保存する。これで問題ない。
もしくはキャッシュ用に設計されたCacheStorageを使う。
DBには圧縮ファイル1つしか保存しない。
利用するときは解凍してメモリ上で1つずつ読み書きする。
最後に圧縮して保存する。これで問題ない。
もしくはキャッシュ用に設計されたCacheStorageを使う。
445デフォルトの名無しさん
2016/11/21(月) 08:17:47.88ID:xTCFhIWI >>443
だから、表スレッドでやるから遅いんよ。
同期APIでなくとも、常に一本しか走らん。
インデックス使わないと中身探すのに全舐めだよ。
もし、挿入でなくupdateしてるなら絶対に必要。これはライブラリとか使ってなくて手で書いてたら気づいてると思うけど。
アーカイブは普通、拡張書いてそこからDOM舐めて、http通信でサーバに送ったりindexedDBに保存したりファイルにしたりする。
グリモンのスクリプトでもあんま変わらん。
だから、表スレッドでやるから遅いんよ。
同期APIでなくとも、常に一本しか走らん。
インデックス使わないと中身探すのに全舐めだよ。
もし、挿入でなくupdateしてるなら絶対に必要。これはライブラリとか使ってなくて手で書いてたら気づいてると思うけど。
アーカイブは普通、拡張書いてそこからDOM舐めて、http通信でサーバに送ったりindexedDBに保存したりファイルにしたりする。
グリモンのスクリプトでもあんま変わらん。
446デフォルトの名無しさん
2016/11/21(月) 15:43:00.92ID:LVMdN4w/ とりあえず必要最小限のコードを全部提示しろ
447デフォルトの名無しさん
2016/11/21(月) 23:45:11.05ID:jF13U7nK すまん解決したかも。
詳細を投稿しようとしたが何故かNGワード規制なので細切れで試す。
詳細を投稿しようとしたが何故かNGワード規制なので細切れで試す。
448デフォルトの名無しさん
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を使っていた。
以下ではIDBRequest.onsuccess内でやっており、
//nparashuram.com/IndexedDB/perf/#Transaction based on Write
それってありか?ということでMDNを確認した結果、MDNでもそうなので
https://developer.mozilla.org/ja/docs/Web/API/IDBDatabase/close
パッチして味見した結果、とりあえず倍くらいにはなった。
それでもまだ遅いが、今は安定して動く状態ではないので詳細は確認出来ない。
本修正して安定動作させ、まだ遅いようならもう一度投稿する。
ちなみにコード自体は上記上側と似たようなもの。ただしoncompleteを使っていた。
449デフォルトの名無しさん
2016/11/21(月) 23:47:37.28ID:jF13U7nK 上記一つ目、httpが引っかかったようだ。脳内補完よろしく。
450デフォルトの名無しさん
2016/11/22(火) 01:12:38.73ID:62WBcce4 >>448
あのさあ。
なんで強引にそうむりやり解決するのかわからん。
db.close使うことなんかほとんど無くねえか?
当たり前のようにonsuccessでトランザクションcommitするだけじゃねえの?
ずーっと偉そうだけど、脳筋が知恵の輪を強引にバラしてドヤ顔してるように見えて仕方ない。
ラグビー部員かゴリラレベルだよ、それ。
あのさあ。
なんで強引にそうむりやり解決するのかわからん。
db.close使うことなんかほとんど無くねえか?
当たり前のようにonsuccessでトランザクションcommitするだけじゃねえの?
ずーっと偉そうだけど、脳筋が知恵の輪を強引にバラしてドヤ顔してるように見えて仕方ない。
ラグビー部員かゴリラレベルだよ、それ。
451デフォルトの名無しさん
2016/11/22(火) 23:13:11.58ID:bRc12BV/ oncomplete->onsuccessについては失敗した。
これは積み込みが早くなる(見た目終わったように見える)だけであって、
スループットは変わってない。
db.open->db.close間の時間を計測していたので間違えた。
意味としては並行トランザクションの数を増やせば同じだし、実際そんな感じだ。
onsuccessでやると他情報のライフタイムがずれるので、話が面倒になっただけだった。
これは積み込みが早くなる(見た目終わったように見える)だけであって、
スループットは変わってない。
db.open->db.close間の時間を計測していたので間違えた。
意味としては並行トランザクションの数を増やせば同じだし、実際そんな感じだ。
onsuccessでやると他情報のライフタイムがずれるので、話が面倒になっただけだった。
レスを投稿する
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 ⬅︎これ [279254606]
- 麻生太郎、腹をくくる「日本国民が高市を総理に選んだ。であるならば最期まで支えるのが私たちの役目」 [329329848]
- 【悲報】自民党のヒゲ、外務省局長と中国高官の写真にブチギレwwwwwwwwwwwwww [834922174]
