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

私的良スレ書庫

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

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

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
151 : Name_Not - 2011/04/02(土) 10:51:45.31 ID:??? (+17,+29,+0)
ちょっとだけよ
152 : Name_Not - 2011/04/02(土) 11:05:37.37 ID:??? (-28,-30,-78)
jqueryでここまでできたのですがうまく動きません助けてください
$(function(){
$('#contents').html($('body').html().replace(/https?:\/\/[a-z0-9\.-]+\//i, '<a href="' + $1 + '">$1</a>'));
});
153 : Name_Not - 2011/04/02(土) 11:08:29.96 ID:??? (+27,+29,-34)
jQuery使っているサイトってエラーがてんこ盛りなんだけど
よくこんなんでお金取ってるよな
154 : Name_Not - 2011/04/02(土) 11:09:33.18 ID:??? (+27,+29,-4)
と、自称エリートが申しておりましたとさ
155 : Name_Not - 2011/04/02(土) 11:36:08.89 ID:??? (-29,-30,-216)
getElementsByTagNameってキャッシュ機能(?)のようなものがあるんでしょうか?
firebugを使ってスピードを測っていたのですが、1回目だけ2回目以降の10倍以上の時間がかかっています。
----------
window.onload = function() {
function get() {
  document.getElementsByTagName('li');
}
  console.profile();
  console.time("go");
for (var k = 0; k < 100; k++) {
  get();
}
  console.timeEnd("go");
  console.profileEnd()
};
----------
100回のループだと最大0.048msで平均が0.005msですが、
1回のループだと最大0.048msで平均も0.048msです。
これって最初だけ時間がかかってるって事ですよね?
キャッシュ機能っていうのは詳しくしらないですが、
何故こういう現象が起きるのでしょうか?
156 : Name_Not - 2011/04/02(土) 11:47:06.42 ID:??? (+27,+29,-32)
実装次第じゃねーの?
短くなってるならキャッシュがきいてるだろ
速くするためにfor中ではそうなるようになってるのかもしれんし
157 : Name_Not - 2011/04/02(土) 11:59:23.77 ID:??? (+27,+29,-17)
土曜のこの時間はレベル高い人がいないから夕方以降に質問したほうがいいぞ
161 : Name_Not - 2011/04/02(土) 17:54:25.12 ID:??? (+25,+29,-44)
ちゃんと見てはないけど可能だと思うよ?
どんなコードを書いたのか解らないから指摘云々もないわけだが
162 : Name_Not - 2011/04/02(土) 19:05:41.30 ID:??? (+16,+28,-17)
>>160
そもそもhttp://colorpowered.com/colorbox/core/example1/index.html のほうは、ColorBoxというライブラリを使っているということ自体とか、そのライブラリの使い方とか、そういうことは分かっている?
163 : 160 - 2011/04/02(土) 19:06:24.31 ID:??? (-26,-30,-27)
>>161
失礼しました、

http://jsbin.com/ozisu5

のように記述しています。(jsは今だけ配布元のものをお借りしています)
普通にbodyにおいたリンクからは表示されるのですが、同じ記述でも
スクロールメニュー内に表示するためのvar view='<nobr>~</nobr>'内におくとできなくなります。
164 : Name_Not - 2011/04/02(土) 19:07:08.72 ID:??? (+37,+29,-12)
lightboxで画像をクリックすると周りが暗くなる部分を作りたいのですが
あればなんていう名称なんでしょうか?
165 : Name_Not - 2011/04/02(土) 19:11:06.29 ID:??? (+24,+26,-3)
決まった名前ってあるのかな?
自分はグレーアウトとか言ってるが
167 : 160 - 2011/04/02(土) 19:25:57.43 ID:??? (+9,+10,-8)
>>166
すみません(´Д`;)
実際のページそのままは載せられなかったので慌てて何箇所か削ったためです…
168 : Name_Not - 2011/04/02(土) 19:35:03.68 ID:??? (-23,-30,-86)
$("a[rel='example1']").colorbox();をする実行タイミングの問題だろ
それにしてもdocument.writeとかもうちょっと何とかした方が・・・
jsajax.com/Articles/scrollablemenulinks/775
のソースはうんこだから参考に全面的に書きなおせ
169 : Name_Not - 2011/04/02(土) 20:19:24.25 ID:??? (-27,-30,-69)
多数のDOM要素を操作したい時にいちいちgetElementByIdやらで要素を取得するより、
getElementsByTagName('*')で全ての要素を取得してcache[name]のようなハッシュに、
要素を入れておく方が速いですか?
やっているのを見たことがないので何か問題でもあるのかもしれないと思って聞きました。
170 : Name_Not - 2011/04/02(土) 20:29:00.95 ID:??? (+20,+22,-7)
HTMLを書き換えたら構成が変わってしまうから、それだと管理が面倒だろ
171 : Name_Not - 2011/04/02(土) 20:30:29.88 ID:??? (+27,+29,-28)
同じ関数内で複数回使うなら変数に入れるのが普通。
要素追加とかで変化するから全部のキャッシュはしたことないな。

速いか速くないかは自分の使うソースで検証すればいいんじゃない?
172 : Name_Not - 2011/04/02(土) 20:35:10.04 ID:??? (-26,-29,-14)
getElementsByTagNameなら生きてるノードリストだよ
173 : Name_Not - 2011/04/02(土) 20:56:21.91 ID:??? (-27,-25,-19)
javascriptでベンチマークをとる方法をおしえてkづあさい
174 : Name_Not - 2011/04/02(土) 21:02:51.53 ID:??? (-8,+3,-2)
ググる
175 : Name_Not - 2011/04/02(土) 21:04:52.86 ID:??? (+8,+15,+0)
自己解決しました
http://tinyurl.com/3g4zl3r
176 : Name_Not - 2011/04/02(土) 21:06:59.88 ID:??? (+27,+29,-45)
全部の要素取得メモリ消費量がすごいんじゃないか?w
最近のPCから見れば微々たるもんだろうけどそれでもそんなサイトあんまりみたくないわ・・・
よく使う一分の要素をキャッシュするのは凄く分かる話なんだが・・・
177 : Name_Not - 2011/04/02(土) 21:08:49.76 ID:??? (+24,+29,-13)
>>172
それを殺して名札付けて管理するのってどお?って話なんじゃないの
178 : Name_Not - 2011/04/02(土) 21:34:24.51 ID:??? (+35,+29,-4)
>>167
http://jsbin.com/ehaca6
これでどう? 不完全だが自由に使え。
179 : 160 - 2011/04/02(土) 22:34:59.15 ID:??? (+28,+29,-14)
>>178
ありがとうございます!!これがやりたかった…
とても参考になりました、感謝しています。

>>168
なるほど、勉強になります。
アドバイスを参考に書き直してみます。
180 : 160 - 2011/04/03(日) 00:14:30.39 ID:n9rTGV7d (-7,-29,-107)
度々すみません。
>>178で教えていただいたのを参考にすすめているのですが、

文字リンク http://jsbin.com/ehaca6/2 だと問題ないのに
画像リンク http://jsbin.com/ehaca6/3 にした途端挙動がおかしくなります。
最初にページを読み込んだ時は問題ないのですが、
リロードしたり2回目以降にページを開くとスクロールが飛んでしまいます。

双方の違いはリンクを張る箇所をテキストのimg_linkから
img src="" />に変えた点のみです。
どこに問題があるのでしょうか…?
181 : Name_Not - 2011/04/03(日) 00:21:58.01 ID:??? (+32,+29,-6)
>>178
すげえ即席でつくったのか?
初心者だからうらやましい
182 : Name_Not - 2011/04/03(日) 00:34:58.89 ID:??? (+34,-29,-131)
Lightboxについての質問です。AのようなLightboxを、サンプルフォルダまるごとコピーして
表示させることができたのですが、ウィンドウの下部にBのような補足ボタン(次とか前)を
表示させたいです。初心者なものでコードをみてもさっぱり分からない状態です。
ダウンロードしたファイルの内容はCのような感じになっています。

どのようなコードをどこに記述すればいいのか、あるいはBの表示のあるLightboxの
サンプルがダウンロードできるサイトとか、ヒントでもどのようなことでもいいので
おしえてもらえると助かります。よろしくお願いします。

A
.html
B
.html
C
.html
184 : Name_Not - 2011/04/03(日) 07:29:53.94 ID:??? (+38,+30,-175)
>>180
オレの環境ではhttp://jsbin.com/ehaca6/3 も順調に動いているからなんとも…

>>182
Lightbox系の質問はときどきでるけど、的確で自信のある回答をみたことないので、Lightbox系を使い込んでいて親切な人はこのスレにいないんじゃない?
商業系でよく使われているライブラリなので、商売上のノウハウをあまり明かしたくないのかもしれん。

さて、自信のない回答だが、どうしてもLightboxを使いたいなら、見た目を変えることだけはできる模様:
http://journal.mycom.co.jp/articles/2007/06/14/lightbox/004.html

ただ、質問を読むに、ギャラリー化、グループ化自体ができていないんじゃない? ここを読むべし:
http://journal.mycom.co.jp/articles/2007/06/14/lightbox/003.html

もっと自由に外観をいじりたくて、なるべくjavascriptを触りたくないなら、Lightbox自体ではなく、Lightbox「系」でDIV要素なども表示できるライブラリを使うのが簡単だろう。
FancyBoxとかが良さそう。
http://fancybox.net/

実例:
http://jsbin.com/onifo5

だたし、実際のサイトに使うときは、http://jsbin.com/onifo5 のHEADタグ内のhttp://fancybox.net/~ の部分はローカルを参照するように書き換えろよ。絶対に。
185 : Name_Not - 2011/04/03(日) 07:40:36.34 ID:??? (+22,+24,-21)
jQueryのanimateをはじめ各種のエフェクト系は
いらない事をよくするので正直使わないほうが・・・
186 : Name_Not - 2011/04/03(日) 11:02:28.58 ID:??? (-25,-30,+0)
position:fixed指定の背景付きdiv矩形をJSからstyle.left&style.top弄って動かしてゲームを作ろうとしています
そこで問題が起きたのですが
styleを弄る度に動作が重たくなってしまいます
具体的には10個矩形を動かし初め20fps出てたものが1分ほど動かすと10fpsになったりします

ずっと同じ位置をstyleに与えつづけても重たくなります
またstyleを弄る部分だけコメントアウトして物理演算の部分だけ動かすと重たくなりません
style.left;style.top;で2回で位置を指定するとsetAttribute("style","left:px;top:px;")で一括で指定するより2倍早く重たくなります

重たくなってからdocument.body.innerHTML=""で消してDOMを再度組んでやると少しだけ軽くなりますがすぐもとの重さになります
しばらく止めてGCに期待してもだめです
ちなみにブラウザはNet Front 3.4ですが、eajax.gc()は使えません
もっとも、今回はDOMがメモリリークしているのではないかと思います

いったいどうしたらいいのでしょうか?
document.body.innerHTMLの代わりにdocument.writeを使って綺麗にするといい気がしますが
styleが上手く効かなくなるというバグらしきがあり使えません
そういえば2つの画像をたくさん切り替えたときも重たくなりました
昨日四半日ググって調べましたがわかりません
何か解決の方法を少しでも知ってる方がいらっしゃったら教えてください
Canvasが使えれば一番いいんでしょうですけどね
187 : Name_Not - 2011/04/03(日) 11:43:41.59 ID:??? (+22,+29,+0)
まず服を脱ぎます。
188 : 05004010 - 2011/04/03(日) 12:48:18.01 ID:??? (+19,+26,-1)
これでよろしいでしょうか?
189 : Name_Not - 2011/04/03(日) 13:39:00.28 ID:??? (-7,-30,+0)
javascriptで特殊な配列を作るオブジェクトを作りたいのですがやり方がよく分かりません。
例えばjQueryとかだと下記のコードのようになっていて、$('div').color();のような形でFunc.prototype以下のメソッドを実行しますが、
(1)----------
$ = Func;
function Func(expr) {
  return new Func.prototype.init(expr);
}
Func.prototype = {
  init:function(expr) {
    //exprを元に要素を取得
  },
  method: function( ){
   alert('foo');
  }
}
Func.prototype.init.prototype = Func.prototype;
window.onload = function() {
  f = $(expr);
  f.method();//メソッドを実行
}
----------
作りたい形は下記のようなものなので、
190 : 189 - 2011/04/03(日) 13:42:41.54 ID:??? (-27,-30,+0)
続き
(2)----------
window.onload = function() {
  var f = $(expr);//fに代入されるのは要素の配列
  f.method();//配列内のすべての要素に対してメソッドを実行
  f[0].method();//配列内の個々の要素に対してもメソッドの実行が可能
  f[1].method();
}
----------
Func.prototypeのinitの中で配列を返すようにしています。
(3)----------
Func.prototype = {
  init: function() {
    return [elm1, elm2, elm3];
  }
}
----------
そうすると当然fに代入されるのはFuncオブジェクトではなくただの配列なのでmethodメソッドは実行されません。
この配列に対して上記(2)のような形でメソッドを実行させるようにはできないでしょうか?
Array.prototypeにメソッドを追加する事も考えたのですが、普通の配列に対してはメソッドの実行をさせたくないのと、
それをするとFuncオブジェクトを作る意味がなくなるのではないかと考えたので・・・。よろしくお願いします。
191 : Name_Not - 2011/04/03(日) 14:27:02.84 ID:??? (-27,-30,-103)
何がしたいのか確信は持ってないけど、別に Array を拡張しなくても、
Func に Array を継承させて、Func を拡張すれば良いのでは?
その為の仕組みでしょ。

Func.prototype = new Array();
Func.prototype.init = function(expr) { ... };
Func.prototype.method = function() { ... };
192 : 189 - 2011/04/03(日) 14:40:46.30 ID:??? (-19,-30,-303)
分かりづらくてすみません。一応一歩前進しました。
var Func = function() {
  return new Func.prototype.init();
}
Func.prototype = {
  init: function() {
    var ary = [elm, elm2];
      for (var i in this) {//ここ
        ary[i] = this[i];
      }
    return ary;
  },
  color: function() {
    alert('foo');
  }
}
Func.prototype.init.prototype = Func.prototype;
window.onload = function() {
  var f = Func();
  f.color();
}
要はFuncで配列を返して、返す配列に対してFuncのメソッドを継承させるという事です。
ただ配列に対してメソッドは継承できたのですが、配列の中身への継承が何故かできません・・・。
for (var i in this) {//ここ
  ary[i] = this[i];
  for (var j = 0; j < ary.length; j++) {//動かない
    ary[j][i] = this[i];
  }
}
193 : Name_Not - 2011/04/03(日) 15:19:24.54 ID:??? (+32,+29,-81)
とつぜんですが、質問させてください。
JavaScriptをいちから勉強しようと思っています。他の言語どころか、プログラミングがどういうものかもよくわかってないレベルです。
そんな人間がJavaScriptをある程度使えるようになるまで、何時間ぐらい勉強時間が必要でしょうか。もちろん人それぞれだとは思いますが、よかったらざっくりとでいいので教えてください。
よろしくお願いします。
196 : Name_Not - 2011/04/03(日) 15:32:37.73 ID:??? (+27,+29,-4)
JavaScriptが出来ると世界を制す
覚えとけ!
197 : Name_Not - 2011/04/03(日) 15:44:39.89 ID:??? (-29,-27,-22)
> 10分でif文を覚える
時間掛け過ぎ

> 30秒で DOM の操作を覚える
無理
198 : Name_Not - 2011/04/03(日) 15:50:33.57 ID:??? (+27,+29,-20)
そんなペースでやれれば1日で全ての言語を取得できそうだなw
199 : Name_Not - 2011/04/03(日) 15:53:01.99 ID:??? (+27,+29,-6)
世界にどれくらいの言語があるか知ってるのか
200 : Name_Not - 2011/04/03(日) 15:53:41.34 ID:??? (+25,+29,-4)
>>192
最後6行のブロック
そもそも何をやりたかったのかさっぱり分からん
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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