のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,620,598人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.113 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
201 : Name_Not - 2014/02/03(月) 06:24:51.24 ID:??? (+49,-30,-228)
>>191 こんな感じでやればいいと思う

var MS_PER_DAY = 24*60*60*1000
var tid = -1
var snoozeTimes = 5

function setAlerm(h, m) {
 clearTimeout(tid)
 var d = new Date, n = +d; d.setHours(h); d.setMinutes(m)
 tid = setTimeout(playAlerm, (d - n + MS_PER_DAY) % MS_PER_DAY, snoozeTimes)
}

function playAlerm(sn) {
 new Audio('alerm.mp3').play()
 if (sn) tid = setTimeout(playAlerm, 5 * 60 * 1000, --sn)
}

stopElem.onclick = function () { clearTimeout(tid) }



>>196
indexOfでOK
というか変に凝るのは良くない
202 : Name_Not - 2014/02/03(月) 06:36:12.34 ID:??? (+70,+29,-94)
>>196
何が速いかは一般的に言えない
例えば値をキーにすれば後々の参照は速くなるけど、書き込み時は遅くなるし、その他手間もかかる
順序は大切なのか、とか数値だけなのかとかでも手段は変わる

少なくとも連想配列にする方法は速いかもしれないが良い方法ではない
パフォーマンス上深刻な問題が出て初めて検討するようなこと
indexOfは速くはないかもしれないが良い方法だよ

まあES6のSetが満足に使えれば一番スマートなんだけどね
203 : 191 - 2014/02/03(月) 13:26:09.51 ID:??? (+70,+29,-49)
>>200
所定時間でページを読み込むという方法ですね、考えてみます

>>201
詳しいスクリプトありがとうございます
まだjavascriptそんなに詳しくないので書いてくれた記述を調べながらやってみます

お二人とも親切にありがとうございました!
205 : Name_Not - 2014/02/03(月) 17:16:24.95 ID:??? (+3,-30,-138)
PUREっていうヤホー謹製のCSS Framework勉強中だけどかなりいい感じ
BootstrapでjQueryが使われてるようにPUREにはYUIが使用されてる
YUIって今まで知らなかったんだけど、jQueryと比べてどんな違いがあるんだろ
jQueryの方がデザイナー向け、YUIが技術者向けと解説してるブログもあった
206 : Name_Not - 2014/02/03(月) 18:52:09.74 ID:??? (-1,-29,-19)
jQueryも$(".class")とかやるとめっちゃ遅くなるから
大体理解しとけばそれなりに
207 : Name_Not - 2014/02/03(月) 18:56:42.08 ID:??? (+29,+6,-4)
今のブラウザなら速いだろ。
208 : Name_Not - 2014/02/03(月) 19:29:24.24 ID:??? (+91,+29,-53)
なんとなくchromeのJS速度が遅くなった気がします
ドラッグにモッサリ感が出てきたような
そんな感じしませんか?
209 : Name_Not - 2014/02/03(月) 21:23:49.47 ID:??? (+69,+29,-3)
>>208
ドラッグとJS速度の関係性について詳しく
210 : Name_Not - 2014/02/03(月) 23:24:25.40 ID:??? (+57,+29,-17)
いつかここの住民と一緒に最強フレームワークを作れたらいいいな
211 : Name_Not - 2014/02/03(月) 23:47:59.80 ID:??? (+52,+29,-4)
匿名多くして舟山に登る
212 : Name_Not - 2014/02/04(火) 01:22:47.11 ID:??? (+19,-29,-18)
>>196
レガシーブラウザは非サポートだけどArray.some()というずばりのメソッドがあるよ
213 : Name_Not - 2014/02/04(火) 02:31:40.29 ID:??? (+11,-30,-13)
改行が\n以外になるブラウザってありますか?
たとえば\r\nとか\rとか
214 : Name_Not - 2014/02/04(火) 03:29:51.75 ID:??? (+3,-30,-250)
>>213
例えばテキストエリアの場合
内部的なデータは違うかも知れんが入力されたテキストが
js 側からどう見えるかなら

FF はOS関係なしに問答無用で \n に正規化?
IE だけ 9 までは \r\n で IE10 は \n ?

らしいが、
手入力で改行を入力した場合
\r 入りのテキストをコピペした場合
\r\n 入りのテキストをコピペした場合
\n 入りのテキストをコピペした場合
\r\n と \n と \r が入り乱れたテキストをコピペした場合
でも違ってくるかもしれない
215 : Name_Not - 2014/02/04(火) 06:05:43.44 ID:??? (+4,-30,+0)
>>212
それは範囲をもたせて当てはまる値の存在を知りたい時に使うもの
厳密等価の値があるかを調べるのにはあまり適さない


>>213
textContentから取得した文字が\r\nとかはブラウザ関係なく普通にありえるよ
ただしtextareaのvalue経由で扱う値では\n、\r、\r\nは\nに置換されることになってる
http://www.whatwg.org/specs/web-apps/current-work/#concept-textarea-api-value

ただ仕様の怪しい物もあって、例えばalertの仕様では
「例えば\nで段落分けすることを含む、高度な表現をサポートすることが期待される」としかされてない

実装はChはJSの「改行文字4種」で改行して、Fxは\nだけでするとかバラバラ
「改行文字4種」とは\nと\rと\u2028と\u2029のこと、それに\r\nを加えた5つをJSでは改行のトークンとして扱うことになってる
(だから例えば"1\r1"は11に見えるかも知れないけどeval("1\r1")は1になる)

でも基本的にHTMLのNewlinesの定義に従うべきだとするなら、\rと\nと\r\nを1改行と扱うのが適当だと思う
とすると、Fxでは\rのサポートが足りてないし、Chでは\r\nを2改行として表示してしまうのが良くない

また厳密に言うとalertはただの文字列ではなくメッセージを表示するものだから、ただの改行ではなく段落分けされる方が好ましい
216 : Name_Not - 2014/02/04(火) 07:59:32.27 ID:??? (+52,+29,+0)
すごく詳しくありがとうございます
217 : Name_Not - 2014/02/04(火) 08:44:37.90 ID:??? (+5,-30,-92)
>>212
Array#indexOf で遅いといっている人に Array#indexOf より遅い Array#some を薦めるのは…。

Array#indexOf が標準的な書き方で最適だと思うが、関数コストが重いと感じる環境なら for 文で回せばいいと思う。
最も、そこまでパフォーマンスに不満がある状況なら実装方法を変えたほうがいいかもしれないが。
218 : Name_Not - 2014/02/04(火) 13:05:28.67 ID:??? (+3,-29,-86)
contenteditable=trueで
スペースを入力した時のタグ化のアルゴリズムはどういうものでしょうか
必ず に変換する、だと思っていたのですが、違うようです
http://jsbin.com/EzaloQO/1/edit
ここでスペースを入力すると、コンソールにhtmlソースを出力するので確かめられます
何故必ず に変換しないのかが分かればアルゴリズムも分かると思うのですが
219 : Name_Not - 2014/02/04(火) 21:08:28.73 ID:??? (+57,+29,-71)
文末と行頭は に変換する
その後、連続するスペース二つはスペース+ に変換する
で、chromeの場合のアルゴリズムは再現できました。
しかし何故こんな変なやり方をしているのでしょうか?
220 : Name_Not - 2014/02/04(火) 21:09:34.59 ID:??? (+9,-13,-1)
×文末
○行末
でした
221 : Name_Not - 2014/02/05(水) 20:27:31.03 ID:??? (+3,-30,-113)
当分前にChromeのバグの件で質問した者ですが、4年かかってようやく直ったみたいです
http://code.google.com/p/v8/issues/detail?id=691

obj = { get fn() { alert(1) } }
obj.fn( alert(2) )

がChromeだけ2、1となってしまう例のアレです

あのときは分かって貰えず色々言われて"ちょっと"悔しい思いをしてましたが、まあ直ってほっとしました
"ちょっと"遅かったですけどね、、、
223 : Name_Not - 2014/02/05(水) 22:47:34.22 ID:??? (+7,-30,-95)
[
{name:"a",ikioi:500},
{name:"b",ikioi:600},
{name:"c",ikioi:400}
]

こんな感じになっている(連想配列が要素として入っている)配列を

[
{name:"b",ikioi:600},
{name:"a",ikioi:500},
{name:"c",ikioi:400}
]

という感じに、勢い昇順でソートしたいのですが、
勢いを親配列のキーにする(配列の中に連想配列ではなく連想配列の中に連想配列にする)
以外で何か良い方法ありませんか?
224 : Name_Not - 2014/02/05(水) 22:58:57.04 ID:??? (+20,-29,-12)
>>223
Array.prototype.sort
225 : Name_Not - 2014/02/05(水) 22:59:34.63 ID:??? (-12,-29,-1)
>>222
Stephen Bourne乙。
226 : Name_Not - 2014/02/05(水) 23:07:39.80 ID:??? (+35,+10,+1)
>>224
ありがとうございます!
227 : Name_Not - 2014/02/06(木) 06:50:22.41 ID:??? (+12,-29,-68)
divAの中にdivB,dicC,divDが入っていて
Aとそのコンテンツとの間にCSS適用用のdivを挟み込んだり、また抜いたりしたいです
どうするのが一番いいですか?
一番簡単なのは、innerHTMLをdivで挟んでまた代入、みたいなのだと思いますが
228 : Name_Not - 2014/02/06(木) 10:22:21.81 ID:??? (+64,+29,-28)
何がしたいのか解読に時間がかかったが、
わざわざ要素をその都度入れ替えするくらいなら、
最初からそのCSS適用用のdivとかやらを作っておいて、classの値を付け外しする方が良い。
229 : Name_Not - 2014/02/06(木) 22:15:41.06 ID:??? (+9,-30,-207)
>>228
その方法は既存ページに手を加えずに機能を付け足す場合には通用しない
その種の divA が大量にある場合も動的な方がいいかもしれない

>>227
=======挟み込む
var div1 = document.createElement('div');
var range = document.createRange();
range.selectNodeContents(divA);
range.surroundContens(div1);

=======抜く
range.selectNodeContents(div1);
divA.appendChild(range.extractContents());
divA.removeChild(div1);
230 : Name_Not - 2014/02/07(金) 19:02:55.37 ID:??? (+124,+29,-35)
残念ですがその方法はケータイのブラウザでは対応してないようです
世の中には簡易なJSに対応している数千万台のフィーチャーフォンがあることを意識して回答してくださいね
231 : Name_Not - 2014/02/07(金) 19:06:56.90 ID:??? (+26,+24,-67)
textareaで秀丸のような矩形編集がやりたいです
既存ライブラリではないようなので自作しようと思いましたが
複数位置選択のやり方がわかりません
もしかして出来ないのでしょうか?
233 : Name_Not - 2014/02/07(金) 20:18:02.31 ID:??? (+19,+29,-3)
>>230
なにそれ?シティーフォン?
234 : Name_Not - 2014/02/07(金) 21:11:56.23 ID:??? (-18,-29,-10)
var {hoge} = nanntara;
っていう風に変数名を{}で囲ってるのを見るんですが
これはどういう意味なんですか?
235 : Name_Not - 2014/02/07(金) 21:45:18.25 ID:??? (+39,-29,-41)
>>231
今のトレンドはcanvasで全部自前実装
236 : Name_Not - 2014/02/07(金) 23:40:04.55 ID:??? (+61,+28,-23)
>>230
あなたはまず、動作環境を開示して質問する事を覚えて下さいね。
>>2にテンプレがありますから。
237 : Name_Not - 2014/02/08(土) 07:30:21.01 ID:??? (+50,+22,-44)
chromeにコントロールキーを押しながらクリックすると
カーソルを動かしてスクロールできる機能が付きましたが
この機能の名前は何ですか?
238 : Name_Not - 2014/02/08(土) 07:40:06.85 ID:??? (+18,-11,+0)
>>232
document
理由はほぼ全て受け取れるから
239 : Name_Not - 2014/02/08(土) 08:16:02.50 ID:??? (+63,+29,-35)
>>235
すごく大変そうですが本当にトレンドなんですか?
エディタをフルスクラッチで作るようなものでは?
240 : Name_Not - 2014/02/08(土) 09:09:05.19 ID:??? (+57,+29,-39)
たしかcanvasの仕様書にそんなことやめろとか
10個か20個かやたらしつこく理由が挙げられていたような…
241 : Name_Not - 2014/02/08(土) 09:45:03.93 ID:??? (+34,-29,-27)
chromeでcontenteditbleを使った時
URLを書くと勝手にリンクされてしまいます
これを防ぐにはどうしたらいいでしょうか?
242 : Name_Not - 2014/02/08(土) 17:39:52.43 ID:??? (+7,+29,-5)
皆さんは折りたたみをどうやって作っていますか?
243 : Name_Not - 2014/02/08(土) 20:34:12.59 ID:??? (+3,-30,-238)
var MYAPP = MYAPP || {};
MYAPP.utilities = (function (){
var util = {};

util.start = function() {
console.log("スタート!");
};

util.end = function() {
console.log("おわり!");
};
return util;
})();
とした場合
MYAPP.utilities.start(); // スタート!
のように使えますが、

別のファイルからstart()やend()を呼びたいときは
var utilities = new MYAPP.utilities();
utilities.start();
って↓に書いてあるのですが、別ファイルから呼ぶって
http://takanamito.hateblo.jp/entry/2013/04/12/000357
どういったときを想定しているのでしょうか?
244 : Name_Not - 2014/02/08(土) 22:38:01.41 ID:??? (+66,+29,-5)
>>234
これわからないからどこで見たのか教えてください
245 : Name_Not - 2014/02/09(日) 01:47:52.02 ID:??? (+8,-28,-9)
246 : Name_Not - 2014/02/09(日) 06:31:19.41 ID:??? (+3,-30,-124)
>>232 HTML5ではグローバルまで伝播するのでwindowだが、そもそもまとめる必要なし
>>233 au以外のガラケーはほとんどJS有効
>>234 {hoge}というのはES6において{hoge:hoge}の省略でvar hoge = nantara.hoge;と同じ
>>242 details要素

>>231,239,241 そもそも実現手段から考えなおせ。そこにこだわるのは無理筋
247 : Name_Not - 2014/02/09(日) 09:01:22.76 ID:??? (+3,-29,-135)
chromeでctrl+clickをした時、
スクロール状態になるのを防ぐ方法ありますか?
clickイベントをpreventしたら防げると高をくくっていましたが、
ctrlを押しながらclickすると、
clickイベント自体が発生しないようです
イベントがすべてスルーされた結果としてデフォルトの特殊機能が発動するのが
マトモな実装だと思いますが、そうはなっていないようで・・。
248 : Name_Not - 2014/02/09(日) 09:11:51.04 ID:??? (-1,-29,-56)
http://jsbin.com/sejuj/1/edit
実証コードを書いていて気付きましたが
jsbinでoutputを一体型にしている時は、ctrl+clickの機能が発動しないみたいです
outputを別画面にした時は発動します
249 : Name_Not - 2014/02/09(日) 09:20:48.05 ID:??? (+8,-24,-60)
とんでもないことに気付きました
autoscrollとかいうエクステンションのせいでした・・
chromeのバージョンアップから現象が発生したので、
chromeのせいと思い込んでいました・・
スレ汚しすみません
googleも疑ってすみません
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について