X



+ JavaScript の質問用スレッド vol.129 + [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001Name_Not_Found
垢版 |
2016/02/24(水) 00:48:25.01ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
・回答者同士のレスは原則禁止(>>6を参照)
・ライブラリの話題の投稿(>>6を参照)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
0851Name_Not_Found
垢版 |
2017/06/23(金) 00:12:34.91ID:w2ln+Ldj
new Blobでいいじゃん
他の方法があったとしても内部でnew Blob呼ばれてるだろうよ
0852Name_Not_Found
垢版 |
2017/06/23(金) 00:36:00.15ID:???
すみません説明悪かったです。

var b = new Blob(x[0],x[1],x[2], {type: "application/octet-binary"});


x[0],x[1],x[2]の部分を動的に増やす場合どのように記述すれば良いでしょうか?

xの数は1〜5000と変化します。
0854Name_Not_Found
垢版 |
2017/06/23(金) 01:36:23.36ID:???
>>853
なるほど
明日書き直して試してみますわ
テキストでないから苦労してます
0855Name_Not_Found
垢版 |
2017/06/23(金) 02:02:59.89ID:???
結果は中身が結合されず、テキストデータのみ↓となりました。

[object Blob], [object Blob], [object Blob], [object Blob],
0856Name_Not_Found
垢版 |
2017/06/24(土) 17:20:20.39ID:???
Uint8Array()やcharCodeAtなど直前で使ってるか?
もしそうならnew Blobでオブジェクトブロブ化する前にビュー確保して結合調整してみれ
0857Name_Not_Found
垢版 |
2017/06/25(日) 13:27:22.00ID:???
>>856
できました。
ありがとうございました。
0862Name_Not_Found
垢版 |
2017/06/28(水) 12:56:08.44ID:???
>>858
使ってるよ。割と良い。
ナマで使うのが辛いなら、serviceworkerに処理突っ込むか、PouchDBで捌くととても楽。
0863Name_Not_Found
垢版 |
2017/06/28(水) 21:30:10.72ID:???
利用したウェブアプリ増えてきてるよな。
流行ってきているのか今年になって7桁依頼6本目だ。
先週も依頼があってwpやめてローカルにデータベース構築して中規模サイトを複数管理できるものを作ってくれと依頼あったが、いくらにするか迷ってる。
0864Name_Not_Found
垢版 |
2017/06/29(木) 01:41:10.85ID:???
保存制限がいまいちわからん
0865Name_Not_Found
垢版 |
2017/07/08(土) 15:49:42.71ID:???
612 Name_Not_Found sage 2017/05/27(土) 02:13:51.31 ID:???
CDNが接続できないとか何いってんだって感じだなw
探せばそういうのあるかもしれんけど、
繋がりにくいとかありえんわ。
そんなに不安ならGoogleのCDNでも使ってりゃいいだろ

https://developers.google.com/speed/libraries/#jquery
0867Name_Not_Found
垢版 |
2017/07/09(日) 15:24:39.14ID:???
>>858
去年あたりから本格的に利用はじめたけど便利だよな
0868Name_Not_Found
垢版 |
2017/07/09(日) 18:57:19.99ID:???
おまえらって、githubでプログラム公開してたりするん?
0869Name_Not_Found
垢版 |
2017/07/10(月) 13:47:02.46ID:???
>>867
具体的に頼む。
今chromeのextensionでストレージに
chrome.localStorage使ってるんだけど
ちっとつかいづらい。
単純なkey-value型だけどPromiseとか付いてないから
自分で作って抽象化するのとかめんどくさい。
とは言えunlimitedStorageが使えるのはこいつだけだから
ほぼ一択なんかな。
0870Name_Not_Found
垢版 |
2017/07/10(月) 18:00:49.87ID:???
面倒ならまともに使えるライブラリが公開されるまで待てばいいだけの話し
0871Name_Not_Found
垢版 |
2017/07/11(火) 11:28:01.30ID:???
>>869
PouchDBでいいんじゃないの?オーバースペックだろうが。
0872Name_Not_Found
垢版 |
2017/07/12(水) 01:22:25.05ID:???
>>865
ホントこんな救い用のないアホいるのかよ

>>868
ライブラリを5点公開しているよ
うち1つは10万件以上ダウンロードされている
0873Name_Not_Found
垢版 |
2017/07/12(水) 15:55:15.92ID:???
>>872
って具体的にあげないのはなんで?
特定されるとなんかまずいこと書き込んでる?
0874Name_Not_Found
垢版 |
2017/07/12(水) 16:09:43.47ID:???
>>873
書いたら書いたで 宣伝乙 って返すだけだろ
お前らのやり口にはうんざりしてんだよ
0875Name_Not_Found
垢版 |
2017/07/12(水) 16:26:06.48ID:5m6+D7Il
一部宣伝乙みたいに捉える奴絶対いるからな
わざわざ晒す必要もないだろ
0879Name_Not_Found
垢版 |
2017/07/14(金) 01:48:46.82ID:???
JavaScriptでcssの@page を動的に変更する場合どのようにしますか?
0882Name_Not_Found
垢版 |
2017/07/18(火) 21:48:48.19ID:zI5VFuae
// 別スレの方に誤爆してしまったのでこちらにもう一度書きます

質問
よくあるhoverのmouseoutで子孫要素は無視するやーつの関連なんですが

<div>
<input type="text">
</div>

<div>には十分なpaddingがあるとして
<input>をダブルクリックとかしたときに出るブラウザUIの入力補完サジェストに
マウスを乗せると<div>でmouseoutイベントが発火するのだけれど
これを検知して除外するにはどうしたら良いでしょうか?

event.relatedTargetはnullでした
jQueryのhover()メソッドではmouseout扱いでした
0883882
垢版 |
2017/07/18(火) 22:12:08.16ID:zI5VFuae
サンプル用意しました
https://jsfiddle.net/ecmsjwLc/1/

「お名前」をダブルクリックして出るサジェストにマウスが乗ったとき
これをmouseoutから除外したい、です
よろしくお願いします
0884Name_Not_Found
垢版 |
2017/07/18(火) 23:29:09.58ID:???
>>883
この場合はmouseenter/mouseleaveの方が適切な気がするけど、
それは置いといて、

if (evt.relatedTarget) {
$(this).removeClass('hover');
}

とかすればいいんでないの?
サジェストにマウスが乗ったときの正確な仕様は知らんけど
0885882
垢版 |
2017/07/18(火) 23:40:56.07ID:HxcFp7Rb
>>884
あざます

たぶんなんだけど
サジェストに乗った時は
幅100%の要素からwindowの外に出た時と同じ扱い
のような気がするんですよね、nullだし
documentの外の物というか

>>883のサンプルみたいに、サジェストに対して<div>が十分大きければ
座標判定で逃げることもできるんですが
0886Name_Not_Found
垢版 |
2017/07/20(木) 00:15:58.79ID:sT16PNtd
>>885
いわゆるビックプルダウン的なのを作った時に同じことあったわ
同じように、マウス座標で判断した
0887Name_Not_Found
垢版 |
2017/07/22(土) 16:02:43.47ID:???
var res="12:34:56".match(/(\d+)/g);
console.log(RegExp.$1);
console.log(RegExp.$2);
console.log(RegExp.$3);
としました。
結果は最初の一行に56が出て、あとの2行は空白。
期待するのは、
12
34
56
でした。
console.log(res);// ["12","34","56"]とすれば容易なのですが
例えば
<あ0>12</あ><あ0>34</あ><あ0>56</あ>
みたいなときにmatch(/<あ0>([\d]+)</あ>/g)すると
['<あ0>12</あ>','<あ0>34</あ>',<あ0>56</あ>]
となるので、あとで<あ0></あ>を切り取ってやるかのか、そもそもmatchじゃなくreplaceすればいいのか
こういう、マッチさせつつマッチした中の重要な一部分を取得したいとき、
普通はどう処理するのか知りたいですよろしくお願いします
0889Name_Not_Found
垢版 |
2017/07/23(日) 01:39:11.88ID:Lo0i+fpa
質問:
タッチパネルの座標を取得したいんだけどスクロールすると取得座標が合わない
誰か教えて

// var node = イベント(onTouchStart)を登録するHTML要素
// var e = タッチイベント
// var touch 結果を格納する

function onTouch(e){
var _t = e.changedTouches[0];
var _x = _t.pageX;
var _y = _t.pageY;

var rect = node.getBoundingClientRect() ;

var offset_x = rect.left + window.pageXOffset ;
var offset_y = rect.top + window.pageYOffset ;

touch.x = _x - offset_x;
touch.y = _y - offset_y;
}
0890Name_Not_Found
垢版 |
2017/07/23(日) 03:15:12.62ID:???
アドバイスお願いします。

定期的かつ頻繁にforで124000回実行
中の処理は特定文字が見つかり次第置き換え。
このような処理が4000〜5000件。

JavaScriptを使って少しでも速く処理させたいと考えています。
適切な方法や書き方教えてください。
お願いします。
0893Name_Not_Found
垢版 |
2017/07/23(日) 03:40:55.46ID:???
>>887
var str = "12:34:56";

var re = /(\d+):(\d+):(\d+)/;
var ary = str.match(re);

console.log(ary);

正規表現 - MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions

正規表現なら、プログラム板の正規表現スレで、聞いた方が良いかも

>>890
速さでは遅延評価する、Lazy.js が速いらしいけど、
Lazy.js > Lo-Dash > Underscore

Lazy.js って使われているの?
version 0.4.2 だけど

Lo-Dash を使えば、ほぼすべての関数で、ネイティブと同等か、速い

.reduce: LoDash vs Underscore.js vs native
https://jsperf.com/reduce-lodash-vs-underscore-js-vs-native

Win10, IE11 でテストしたら、ネイティブの倍、速かった
0894Name_Not_Found
垢版 |
2017/07/23(日) 03:49:05.29ID:???
> 速さでは遅延評価する、Lazy.js が速いらしいけど、

http://itpro.nikkeibp.co.jp/article/COLUMN/20070403/267180/
> 遅延評価のほうが遅くなる場合


これ読めばわかるが遅延評価が速くなるのは
遅延評価に適した問題で実務でよく使われる
単純な例では遅くなる方が多いよ
0895893
垢版 |
2017/07/23(日) 03:49:06.99ID:???
>>893
自己レス

Revision 4: published Igor Cescon de Moura on 2017-5-15

で実行したら、ネイティブの3倍速かった
0896Name_Not_Found
垢版 |
2017/07/23(日) 03:54:21.22ID:???
>>894
遅くなる場合でも、ほぼ同じぐらいだろ

ブラウザの実装の違いを、平均化するから、ライブラリを使って損はない。
または最初から、フレームワーク内で、Lo-Dash を使っている
0897Name_Not_Found
垢版 |
2017/07/23(日) 05:39:07.60ID:???
何故早くしたいのかにもよるだろう
UXもといレンダリングに影響を与えるということなら
2倍早くできればいいというものでもないからな
そうじゃなくとも最速はSABを使ってのパラレル探索だ
本当はWASMでSIMD使いたいところだが
0898Name_Not_Found
垢版 |
2017/07/23(日) 11:39:57.19ID:???
>>897
そのSABとかWASMを使うのに便利なライブラリを
教えてください。
0899Name_Not_Found
垢版 |
2017/07/23(日) 11:58:58.33ID:???
ばか! そこが一番楽しいところだろ
つうかSAB使うのにライブラリは要らん
特に独立型の単純並列ならAtomicな処理も最小限で済むからね
0900Name_Not_Found
垢版 |
2017/07/23(日) 12:19:35.35ID:???
いやね、実験するだけならそれで良いかもしれないけど
実用するなら対応してないブラウザのサポートをどうするのか?って
問題があるんだよ。だからそれを抽象化して対応してない
ブラウザにはエミュレートするような機能があるライブラリが必要なわけ
0901Name_Not_Found
垢版 |
2017/07/23(日) 13:29:08.68ID:EV2Ai3tf
実際にはフラットケイジング処理でフレンジは皆無なんだけどね
0902Name_Not_Found
垢版 |
2017/07/23(日) 14:32:13.26ID:???
ポリフィルライブラリでエミュレートしなくちゃって言うのは、今回のようなパフォーマンス問題の場合には合わないかな
だって今回提案してる機能は、それを使う方が要件が楽に、スマートに実現できると言う物じゃなくて、確実に面倒にはなるけどパフォーマンスが良くなると言うものなのだから、
そもそもそれが同パフォーマンスで広環境向けにエミュレート出来るんなら最初からそっちを使えば良いと言うことになる

どちらかと言えばエンハンスメントかフォールバック式に考えた方が良い
まあただSABの場合はABの移譲として実装しても良いことも多いと思うよ
0903Name_Not_Found
垢版 |
2017/07/23(日) 19:56:36.98ID:???
>>890
var i=0;
var max=str.lengths; //124000回
var keyword="キーワード";
for(i=0;i<max;i=i+1)
hit(i);
}
function hit(i){
if(str[i].indexOf(keyword,0)!=-1){
// 特定の文字列が含まれているので置き換え
}
}
0904Name_Not_Found
垢版 |
2017/07/24(月) 11:51:24.80ID:???
遅くなりました890です。

>>903
こちらの方法で改善できました。
ありがとうございます。
0905Name_Not_Found
垢版 |
2017/07/24(月) 14:05:49.08ID:???
ワロタ
関数挟まない方が若干早くなるんじゃないか?
0906Name_Not_Found
垢版 |
2017/07/24(月) 14:57:13.43ID:???
改善っていうかやり方すらわからなかったんだろうなぁ
0907Name_Not_Found
垢版 |
2017/07/24(月) 15:07:44.51ID:???
多分、正規表現を使ってたんじゃないの?
0910Name_Not_Found
垢版 |
2017/07/24(月) 19:20:27.95ID:???
また否定されると愚痴るのがわいてるのかよ
0911Name_Not_Found
垢版 |
2017/07/25(火) 20:55:25.91ID:???
googleのコード短くするツール使うと
日本語が実体参照?数値参照?みたいなやつに置き換わるのですが
JavaScriptのコード中にそのまま日本語含めるのは好ましくないのでしょうか?
0912Name_Not_Found
垢版 |
2017/07/25(火) 21:55:28.12ID:???
>>911
単純にコードを短くするだけでなく、圧縮時のサイズ等も考慮されるため
圧縮しやすいように全角文字を変換し省くことで、圧縮性を高めています
日本語文字列の使用が好ましくないという事はありません
0913Name_Not_Found
垢版 |
2017/07/26(水) 00:08:00.97ID:???
なんなら変数名に日本語使ってもいいぞ(極論
0914Name_Not_Found
垢版 |
2017/07/26(水) 01:01:33.67ID:???
全角文字を省いたって数値参照?になるから
増やしてから減らしてるだけじゃん。意味ないよ
0915Name_Not_Found
垢版 |
2017/07/26(水) 01:30:25.79ID:???
国際化しないのなら、日本語のコメント・文字列を書いてもよい

ただし、変数名などには、日本語を使うな。
誰も日本語でテストしていないから、バグるかも

国際化対応では、文字列に、ID_何々と付けておいて、
別のファイルで、IDと日本語文字列を対応させる
0916911
垢版 |
2017/07/26(水) 06:20:21.56ID:???
おはようございます
>>912-915
レスありがとうございます
特別に何か不都合があってそうしてるわけではないということですね
これで安心できます
0918Name_Not_Found
垢版 |
2017/07/26(水) 19:03:45.22ID:???
プログラム板のスレが落ちて荒らしが移ってきたって言いたいんじゃない
元からどっちにも居着いてたと思うけど
0919Name_Not_Found
垢版 |
2017/07/26(水) 19:34:47.46ID:???
>>917
質問スレッドなのにスレルールも守れない人が書き込みしてる
0920Name_Not_Found
垢版 |
2017/07/26(水) 21:15:08.53ID:???
スレルール

> ・質問への「答え」だけでなく「意見」を出しても良い。
0921Name_Not_Found
垢版 |
2017/07/26(水) 22:44:32.54ID:???
909です。

>>917
>>890 例えばこの主に対して
読解力が無いまたは技術がない。もしくは簡単ではないと判断したから以下のようなレスをする。
>>891
>>892

それに対して>>903はソース例を回答する。

主から連絡があり解決されるが、
回答もしてない人達がケチをつけはじめる。
回答しているなら意見として良いことだと思うが今回はソース例を出したのが1名だけ。
はたからみるとスレを劣化させる悪質な人達だと思ってしまうといった葉梨です。

917さんと919さんはどう思われますか?
0922Name_Not_Found
垢版 |
2017/07/27(木) 04:44:48.75ID:???
香ばしい輩が常駐してるのはわかる。
0923Name_Not_Found
垢版 |
2017/07/27(木) 04:59:54.17ID:???
>>921
12400回ループを回すと重いどうにかならん?って質問に
12400回ループを回すコードを差し出してんだから
ネタじゃん
0924Name_Not_Found
垢版 |
2017/07/27(木) 06:29:36.74ID:???
そう?
俺は単純な判定に大袈裟な正規表現を使ってたり、
ループ内の処理に問題があったのならあの回答も良いものだと思ったけど
あと日本語変数は全く問題ないよ
0925Name_Not_Found
垢版 |
2017/07/27(木) 07:07:19.13ID:???
何れにせよ主から解決された書き込みがあったのだから正解を導いたレスが正義なんだよな
俺も次回からはコードなり例なり出すようにしようかな
0926Name_Not_Found
垢版 |
2017/07/27(木) 11:40:47.66ID:???
重いって言ってるんだから重いコードを出すか具体的にどう書いたのが書くべき
書かないなら ■禁止行為である「丸投げ質問」

正義を振りかざすな
質問者にとって正義かどうかとスレにとって正義かどうかは別だ
0927Name_Not_Found
垢版 |
2017/07/27(木) 12:55:01.63ID:???
わりとマジで書いたコード見せてくれるのが一番早いよなあ
書く方もJSを日本語に変換する手間もないし
脳内のJS→日本語インタプリタってよくバグるし

jsfeddleとかに貼ってくれるだけで十分なんだけどなあ
0928Name_Not_Found
垢版 |
2017/07/27(木) 19:14:53.07ID:???
また否定されて声闘してるやついるのかよ
0929Name_Not_Found
垢版 |
2017/07/27(木) 20:00:13.77ID:???
919だけど
>>921

以下の書き込みは一言余分な箇所がありスレの禁止行為に該当するとは思う。
>>905
>>906
0930Name_Not_Found
垢版 |
2017/07/27(木) 20:26:26.41ID:???
禁止行為に該当したらなんだって言うんだ?
現在進行形で明らかに同一人物が荒らしを続けてるならまだしも
0931Name_Not_Found
垢版 |
2017/07/27(木) 21:59:24.65ID:???
921です。

>>929
スレのルールを無視して荒らすような連中はスルーで良いんじゃないの?ワッチョイもなければIDも非表示のスレなんだし・・
そのへんは929さんはどう思う?
0932Name_Not_Found
垢版 |
2017/07/27(木) 22:29:04.15ID:???
実はここまで俺一人の自演な
0933Name_Not_Found
垢版 |
2017/07/29(土) 16:21:31.79ID:???
_あいう__かき____さ__AB___

などの文字列1行があります。
_は全角スペースまたはアンダーバーで数不特定。混在の可能性あり。
よって行の長さも不特定。(30文字までなど制限は加納)
_で始まるとは限らず文字列で始まる場合や文字列で終わる場合もあり。

これを文字列はそのままで左右入替するにはどうしたらいいでしょうか?

___AB__さ____かき__あいう_
0934Name_Not_Found
垢版 |
2017/07/29(土) 16:49:47.30ID:???
正規表現で全角のスペースorアンダーバーかそれ以外の単位で分けて配列に入れる
ひっくり返す
0935Name_Not_Found
垢版 |
2017/07/29(土) 17:46:55.81ID:???
jQueryでやれば簡単だよ。
0937Name_Not_Found
垢版 |
2017/07/29(土) 18:49:12.08ID:???
>>934
"_あいう__かき____さ__AB___ ".match(/[ _]+|[^ _]+/g).reverse().join('')
こうか
0938Name_Not_Found
垢版 |
2017/07/29(土) 18:54:12.40ID:???
jQueryならもっと簡単にできるのか?
0939Name_Not_Found
垢版 |
2017/07/29(土) 19:17:46.73ID:???
jQueryで簡単にできなかったら
jQueryは正規表現置換もできない
クソライブラリってことだ
0941Name_Not_Found
垢版 |
2017/07/29(土) 19:18:34.03ID:???
jQueryはDOMライブラリだからという言い訳はするなよ
jQueryはどんなことにでも使える汎用ライブラリだって聞いた
0942Name_Not_Found
垢版 |
2017/07/29(土) 19:21:31.84ID:???
jQueryは何にでも使えるライブラリである(俺の定義)
もし何にでも使えると主張するライブラリが
それを満たさなければクソライブラリである(俺の定義)
故に俺の定義によればjQueryはクソライブラリである
反論したいなら、俺の定義が間違っていることを客観的に
指摘している情報をもってこいな
0943933
垢版 |
2017/07/29(土) 21:26:44.07ID:???
>>937
[ _]と[^ _]をsplitで別の配列に入れてそれぞれreverseしてました
もっと簡単に書ける方法があるはずと感じながら・・・感謝です。
0944Name_Not_Found
垢版 |
2017/07/29(土) 21:28:39.34ID:???
おいぃぃぃぃ!今の流れはjQueryを
馬鹿にする流れだろおよおぉぉ!!
0945Name_Not_Found
垢版 |
2017/07/29(土) 23:12:19.95ID:???
jQuery原理主義者はSOHOスレに誘導させない方向で頼む
0946Name_Not_Found
垢版 |
2017/07/29(土) 23:31:59.90ID:???
誰もいかないだろw
そんな負け組が集まってるようなスレ
0947Name_Not_Found
垢版 |
2017/07/30(日) 01:48:57.30ID:???
頭の悪い奴に意味を教えるなよ
0948Name_Not_Found
垢版 |
2017/07/30(日) 02:32:06.29ID:???
俺がその頭が悪いやつなんだがw
0950Name_Not_Found
垢版 |
2017/07/30(日) 10:32:34.58ID:???
jquery原理主義者なんているんだ。jqueryってそんなにいいものなの?
正直つまみ食い的な使いかたしかしてないけど
DOMを直接操作するのと何が違うのかよくわかんない。
0951Name_Not_Found
垢版 |
2017/07/30(日) 10:55:34.52ID:???
React使わされるくらいならjQuery原理主義と謗られても構わん!

と思うくらいにはjQuery好きかも・・・
レス数が950を超えています。1000を超えると書き込みができなくなります。

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