This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

JavaScript 技術メモ帳 - グローバルオブジェクトへの参照は遅いIEBlog : IE JavaScript Performance Recommendations - Part 1 僕も、この件は少し気になったので調べてみました。内容のほとんどは、DOMエレメントのプロパティを繰り返し直接呼ばずに、ローカル変数にポインタを入れろとか、そういう内容でした。ここではエレメントだけでなく、グローバル関数の呼び出しでもローカルに入れたほうが速くなること、そしてどのくらい速くなるかをチェックしました。 function global(){}; (function(){ // グローバル関数をそのまま呼び出す console.time("global 0"); for(var i=0; i まず驚いたのが、下のコードの方が遅いこと。100万回の繰り返しで、922ms 対 1973ms で
Created 24 Dec 2004 at 14:47 UTC by flgr, last modified 24 Dec 2004 at 14:49 UTC by flgr. Notes: This is a port of some of Ruby's standard library to JavaScript. It shows that JavaScript is indeed a well-thought out language (even if it's standard library is quite cumbersome). The fact that pretty much everything is based on other components clearly without duplicating logic should make this inter
マイクロソフトのドキュメントに書いてあったので、 実際にやってみた。 どうも、ローカル変数にグローバルオブジェクトへの参照を キャッシングすると速くなるようだ。 http://www.microsoft.com/japan/msdn/columns/dude/dude100499.aspx たとえば、window オブジェクトを使用するときは、 以下のようにすれば速くなるっぽい。 var w = window; // 以後、w を使用する。 グローバルオブジェクトへの直接アクセス 通常の使い方。 4464 ms window.global = 0; (function(){ console.time("test"); for(var i=0; i<1000000; i++){ window.global++; } console.timeEnd("test"); console.log(
JavaScriptを書き始めるとき、いきなり*.jsやHTMLに書いたりするのではなく、大抵下記に試しに書いて実行してみます。 JavaScript Development Environment JavaScript Shell Web Development Bookmarklets 上記2つのブックマークレット版 JavaScript Shell は、補完機能なんかもあって高機能ですが、IE、Operaだとどうもうまく動きません。 JavaScript Development Environment は、ブックマークレット版じゃないほうはIE、Operaでも動くので、どちらかというとこっち使うときの方が多いです。(Operaでのエラー表示が出来てないみたいだけども…) ブラウザ上で簡単に試せるってのはすばらしいですね。 で、その後に*.jsやHTMLに書いて、後はFireBug使い
This is a follow-up to my original window.onload solution. The negative points of that solution are: For Internet Explorer you need an external JavaScript file We only had genuine solutions for Internet Explorer and Mozilla/Firefox (not Safari or Opera) Now, thanks to Matthias Miller, we have a solution for Internet Explorer which does not rely on external files: // for Internet Explorer (using co
Updated Entry: http://p2b.jp/200805-events-order 今日は七夕Wですね。小学生の頃は、学校総出で「♪笹の葉さーらさら〜」ってやって、七夕伝説に思いを馳せたものですが。いつになってもガキの頃の心を忘れない大人でいたいものです。 さて、Ajaxの隆盛によって、その根幹であるJavaScriptはブログに欠かせないものとなっています。ppBlogも例外ではなく、至るところで活躍してます。一般にブログの(トップ)ページは、色々な情報を詰め込んでいるために、ファイルサイズは大きくなる傾向にあり、また、画像も至るところで使われるために、読み込むべきコンテンツサイズは更に大きくなります。ブロードバンドが当たり前の今日でもページの表示にちょっと待たされるのは珍しいことではありません。で、JavaScriptは(画像も含めた)ページの内容物が全部読み込まれた後に
ちょっと前に Mozilla Foundation の人からメールが来て、JavaScript のテストケース作成に協力してくれたお礼として何かあげるから Mozilla Store International から好きなのを選んでね、何個でもいいから、と言われたので、Firefox グレースケール T シャツと Firefox / Thunderbird の傘がいいですと返信したら早速荷物が届いた。 メールには ship the item とあったのでてっきり船便でのんびり来るのかと思っていたら、航空便で予想外の速さに驚き。その分送料も高くついたみたいで、イギリスからの発送だったのだが、同封されていた明細を見ると全体の半分近くが送料で占められていた。 最初は不在通知が届いたのが再配達してもらうのも面倒で直接郵便局の窓口まで受け取りに行き、T シャツと傘がどのように梱包されているのかと思っ
今も昔も大変よく使われている古典的JavaScriptの一つjavascript:history.back()なんですが、実際に戻る操作が成功したのかどうかを判別することができません。タブブラウザなんかを使っててミドルクリックで新規タブで開いてたりすると、history.backをクリックしても無反応で何も起こらない、なんてことよくありませんか? そんなわけなのでhistory.backを実行後にページ移動が発生しているかどうかを監視して、戻るに失敗したときに特定の処理を発生させることができるような関数を作ってみました。 function try_back(errback){ var bs = false; Event.observe(window,"unload",function(){bs=true}); Event.observe(window,"beforeunload",func
JavaScript #5= {}について、Days on the Moonのnanto_viさんから、詳細な情報を頂きました。いつもいつもありがとうございます。(無断で、コメントをブログ本文に転載してしまいごめんなさいね。) nanto_vi これはシャープ変数(sharp variables)と呼ばれるJavaScriptの拡張機能ですね。循環参照を持つオブジェクトをリテラル形式で書くときなどに用いられます。#n=の後にオブジェクトを指定することで、#n#を使いそのオブジェクトを参照することができるようになります。 var o = #1= { next: { next: { next: #1# } } }; o == o.next.next.next; // true Enumerable.prototype = { map: #1= function () { ... }, col
IE における "expression" の過剰検出による XSS の 誘因 2006-08-31-1: [Security] http://archive.openmya.devnull.jp/2006.08/msg00369.html IE では expression(式) をスタイルシート内で記述することで JavaScript を記述することができるのは有名ですが, IE による expression の検出がやたら過剰で XSS を引き起こしやすいということらしい. 実態参照やコメントの挿入,Unicode 文字,全角文字で記述しても expression として検出される. 詳細は,上記サイトより引用. IE では、以下のようなスタイルを記述することで、JavaScript を動作させる ことが可能です。 1) <style>ブロック内での定義 <style>input { l
With so much discussion happening recently about the state of Prototype, it’s great to see some updates finally rolling in. Hopefully this is only the beginning of what’s to come. Here is the changelog as of around 7:00 CST: Make destructive Element, Form, and Form.Element methods return their first argument, so that multiple calls can be chained together. [sam] ex. $(“sidebar”).addClassName(“sele
開発環境関連 JavaScript, リンク 最終更新 2007/01/16 EditArea - the code editor in a textarea overbyte :: Editor JavaScript Development Environment JavaScript Shell Realtime JavaScript Evaluator JavaScript Tutorial Interpreter - JavaScript Interactive Interpreter (Mochikit) Interpreter - JavaScript Interactive Interpreter (Prototype.js) Bookmarklet Builder parse.js / format.js Real Time Syntax Highlighting Java
Welcome to the first of what I hope will be a regular series of JavaScript tips. Object detection is common in JavaScript. Browser irregularities mean that your code must sometimes contain branches for different browsers. Here is a simple way to speed up object detection for a leaner and meaner script. Instead of this: function addEvent(element, type, handler) { if (element.addEventListener) { ele
ページ情報 制作日 2005-07-24T03:14:49+09:00 最終更新日 2005-10-28T11:35:21+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment JavaScriptはクロージャでガリガリ書いていく言語だという説もあるが、OOP原理主義としてはプロトタイプベースでもいいからOOPで書きたいのである。というか、クロージャは中途半端で気持ち悪い。 さて、事の発端は『JavaScript とクロージャ』という記事である。この記事によると、なにやらイベントにクロージャを渡すと幸せになれるという事らしい。ふむふむ、たしかにシンプルでいい感じである。 ……が、しかしだ。オブジェクト指向なアレに対して、クロージャには決定的な弱点が有るはずなのだ。そう、メソッド(クロージャ)間での(メンバ)変数の共有である。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く