のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,833人
昨日: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,-73)
    $("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:??? (+19,+21,-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,-20)
    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,-120)
    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,-302)
    分かりづらくてすみません。一応一歩前進しました。
    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 スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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