タグ

JavaScriptとjavascriptに関するWackyのブックマーク (500)

  • JavaScript Tips & Technique

    操作方法 → キー: 次のページへ ← キー: 前のページへ ↑ キー: 目次ページへ ↓ キー: 目次ページから戻る 目次ページでは ← → キーで一覧を移動し、クリックで選択します 10 年。 世界が JavaScript の真の実力を発見するのに要した時間である。 1995 年、Netscape 社の Brendan Eich により開発・設計された JavaScript は、「世界で最も誤解されたプログラミング言語」などと呼ばれもした、 ともすれば不遇とすらいい得る歳月を経て、あたりのそこここに満ち充ちていた「Web の旧来的なインタラクションの窮屈さを革命したい」という思いによって、ふたたび表舞台に招来された。 JavaScript は、Web の「あちら側」と「こちら側」とを取り結ぶ、もっとも古くてもっとも新しい、そして、もっとも重要な技術だ。次の 10 年を自らの手で創り出す

  • 複数のjsライブラリを利用する際にonloadを書き換える方法[to-R]

    複数のjsライブラリを利用する際にonloadを書き換える方法 複数のJavaScriptライブラリを利用していて、正常に動作しないや、どちらか一方しか動作しないなどの状況に陥ることがあります。 原因は様々なのですが、一番多いのがJavaScriptライブラリのonload記法に依存する問題です。 onload記法とはJavaScriptを実行するタイミングをonloadイベント(ブラウザがすべてを読み込んでから実行)に設定する際の書き方です。 DreamWeaverを利用している方は、以下のようなソースをよく見るかもしれません。 <body onload="MM_preloadImages('hogehoge')"> これはonloadイベントにMM_preloadImagesという関数を設定しているという意味です。 他にもソースコード中の window.onload = functio

    複数のjsライブラリを利用する際にonloadを書き換える方法[to-R]
  • Webアプリのセッション管理はデスクトップアプリのメモリ管理と同じ - プログラマの思索

    Webアプリ開発で必ずぶち当たる課題、Webアプリ特有の技術、アーキテクチャについて考えてみる。 古くから続く課題を知れば、次世代Webフレームワークがどのように解決しようとして、何を提示しようとしているか分かりやすくなるだろう。 #以下、セキュリティ関係などを除く。 Webアプリは、Ajaxが登場するまで、UIがブラウザで制限されているため、それほど難しい機能を実装できなかった歴史があった。 古くはPer/PHP、そしてJavaに至るまで、Webアプリはステートレスだったから、殆どの機能は閲覧機能とマスタメンテナンス機能にすぎなかった。 なぜなら、Webアプリでは、6時間以上もかかるようなバッチ処理を実装したとしても非現実的だから。 しかし、以前から知られているアーキテクチャ上の課題はあるし、Ajaxの出現によって更にその課題が複雑になった現状もある。 Webアプリを作る時はいつも、下記

    Webアプリのセッション管理はデスクトップアプリのメモリ管理と同じ - プログラマの思索
  • Python と Javascript

    目次 1.0.0 Python から Javascript への変換規則 1.1.0 String and Array 1.2.0 文字列 1.3.0 正規表現 1.4.0 配列 1.5.0 辞書 2.0.0 誤解を受けやすい問題 2.1.0 Javascript の undefined 2.2.0 配列、辞書 2.2.1  x in a 3.0.0 役に立つ関数 3.1.0 属性やメソッドの一覧 4.0.0 Reference Python 使いのための Javascript に関するノート PythonJavascript はシンタックスの上で大きな違いがあるが、内面ではこの二つはよく似ている。 Python から Javascript への変換規則 String and Array このテーブルは単なる僕のメモ 全く不十分である * Python Javasript comme

  • JavaScriptを並列処理言語Erlangへコンパイルする"ErlyJS"とは | エンタープライズ | マイコミジャーナル

    Roberto Saccon氏がErlyJSと呼ばれる興味深いコンパイラの開発をはじめている。まだ開発は初期段階だが、発想がおもしろくかなり興味をひく。ErlyJS (JavaScript to Erlang compiler)はJavaScriptをErlang仮想マシン向けにコンパイルするコンパイラ。それ自身もErlang仮想マシンで動作する。 Erlangは並列処理に注力して開発されたプログラミング言語およびその実行環境。ErlyJSはJavaScriptをErlangで動作するコードにコンパイルするためのもので、クライアントアプリケーションの開発を目指している。Erlangで開発されたサーバ上で、ErlyJSを使ってコンパイルされたJavaScriptコードがクライアントアプリケーションとして動作するという寸法だ。 公開されている情報によればJavaScriptコードはErlang

    Wacky
    Wacky 2008/02/17
    ErlyJS (JavaScript to Erlang compiler)はJavaScriptをErlang仮想マシン向けにコンパイルするコンパイラ。それ自身もErlang仮想マシンで動作する。
  • (function(var){..............})(var) と function(var){............} の違い。つまり、クロージャ。 - それ図解で。・・・tohokuaikiのチラシの裏

    <script> (function(v){alert(v)}("aa")); hoge=function(v){alert(v)}; </script> ってやった場合、ローディングが終わったら alert("aa") が実行される。 ただし、 <script> (function(v){alert(v)}("aa")); hoge=function(v){alert(v)}; hoge("bb"); </script> ってやった場合、ローディングが終わったら alert("aa"); alert("bb") が実行される。 function全体を()でくくった場合は、それ自体を無名関数化して1回実行させる。 じゃあ、(function(){})は何を返すか? <script> hoge=(function(v){alert(v)})("aa"); alert(hoge); </scr

    (function(var){..............})(var) と function(var){............} の違い。つまり、クロージャ。 - それ図解で。・・・tohokuaikiのチラシの裏
  • Adobe高速JavaScript実装、バイトコードにForthを採用 | エンタープライズ | マイコミジャーナル

    A Quick Introduction to Tamarin Tracing - by Chris Double氏 Webシステム開発用の言語としてJavaScriptが日に日に重要な位置を獲得しつつある。複雑なシステムを開発するとなるとその実行速度が問題視されるJavaScriptだが、コンパイル技術の導入やJITの導入で状況は改善されようとしている。特にFirefox 4で導入が予定されているAdobe Systemsから寄贈されたTamarinはJavaScriptの実行速度を劇的に向上させることになる。 Chris Double氏が3日(米国時間)、同氏のブログにおいてA Quick Introduction to Tamarin Tracingのタイトルのもと興味深いドキュメントを公開た。同氏は同ドキュメントで"tracing jit"と呼ばれる技術を活用した実装"Tamari

    Wacky
    Wacky 2008/02/07
    特にバイトコードにForthを採用したことは注目に値する。ほかのスクリプト言語への応用も踏まえてかなり興味深いプロダクトだ。
  • プログラムのコードを配色する「google-code-prettify」

    プログラムのコードを配色する「google-code-prettify」 google-code-prettifyはプログラムのコードに色を付けるJavaScriptライブラリになります。 CやJava, Python, SQL, HTML, XML, CSS, Javascript,Ruby, PHP, Perlなど様々な言語に対応しております。 設置方法 ダウンロードしたprettify.cssとprettify.jsを読み込みます。 <link href="prettify.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="prettify.js"></script> prettyPrint()を実行します。 配布元ではonloadイベントで追加と説明していますがaddEventL

    プログラムのコードを配色する「google-code-prettify」
    Wacky
    Wacky 2008/02/03
    google-code-prettifyはプログラムのコードに色を付けるJavaScriptライブラリになります。
  • 【連載】いまからはじめるScript.aculo.us (3) ドラッグ&ドロップの実現 | エンタープライズ | マイコミジャーナル

    前回までにさまざまな演出効果を紹介してきた。今回からはScript.aculo.usのコンポーネントを紹介していきたい。最初はドラッグ&ドロップを実現するDraggableとDroppablesだ。 なお、Script.aculo.usのバージョンは、新年早々にリリースされた1.8.1である(CHANGELOG)。詳細はWikiページで確認していただきたい。なお、紹介するオプションはすべて省略可能だ。 要素をドラッグ可能にする new Draggable( IDもしくはDOMオブジェクト, { オプション } ); マウスのドラッグによって、要素の位置を移動できるようにする。ドラッグ中の要素はデフォルトで透明度が0.7に設定されるが、この動作はstarteffect, endeffectオプションを上書きすることで変更できる。 [主なオプション] 名称 値の内容 デフォルト revert

  • わーい \(^o^)/ PL/0を JS で書いたよー! - ockeghem's blog

    最近、JavaScriptで小さな処理系を書くのが流行っているらしい。 45歳を過ぎた私もやってみたいと思い、昔とった杵柄で、PL/0の処理系をJavaScriptで書いてみた。こちらをどうぞ。 amachangみたいに4時間というわけにはいかなくて、動き出すには6時間くらい(何日かに小分けにしたので)かかったと思う。 PL/0については、Wikipediaの解説が詳しい。 この実装の特徴としては、 教科書的な降下型パーサ(1トークン先読み) 簡単なPコードインタプリタでの実行(この部分だけ以前Cで書いたものを流用・移植した) 上記のごとくあまり特徴はない。素直にPL/0をJavaScriptで実装した まだ、手抜きが多い。単項マイナスもまだ。実装は容易です。 思ったこと もうPascalでは書けないと思いました(^^; デバッガもないCabezonで、よく8000行も書いたなぁー Fir

    わーい \(^o^)/ PL/0を JS で書いたよー! - ockeghem's blog
    Wacky
    Wacky 2008/01/29
    PL/0の処理系をJavaScriptで書いてみた。こちらをどうぞ。
  • [JS]MicrosoftからJavaScriptのメモリリーク検出ツール

    MicrosoftのヨーロッパチームからJavaScriptのメモリリークを検出するツール「JavaScript Memory Leak Detector」のベータ版がリリースしました。 JavaScript Memory Leak Detector JavaScript Memory Leak Detectorは、Windows+IE専用のツールで、ダウンロード・インストールは以下の手順になります。 下記の「download link」からファイルをダウンロード。 Installation ファイルを解凍して、「JSLeaksDetector.msi」をダブルクリックして、インストール。 インストール時は、IEは終了しておく。 インストールが完了したら、IEを起動。 IE7の設定方法 [表示] - [エクスプローラ バー」 -[js memory leak detector]をチェック。

    Wacky
    Wacky 2008/01/28
    MicrosoftのヨーロッパチームからJavaScriptのメモリリークを検出するツール「JavaScript Memory Leak Detector」のベータ版がリリースしました
  • JSDeferredを読む - 西尾泰和のはてなダイアリー

    前からamachangが「読むといい」って言っていたJSDeferredのコードを読む。defferedじゃなくてdeferredなので注意。 Deferred.define = function (obj, list) { if (!list) list = ["parallel", "wait", "next", "call", "loop"]; if (!obj) obj = (function () { return this })(); for (var i = 0; i < list.length; i++) { var n = list[i]; obj[n] = Deferred[n]; } return Deferred; }; これはグローバルスコープに書き出すコード。(function () { return this })()でwindowオブジェクトがとれているみた

    JSDeferredを読む - 西尾泰和のはてなダイアリー
  • スクリプト言語の比較

    スクリプト言語の比較 *1 *2 *3 *4 *5 *6 *7 コメント 行の継続 定数 未代入の変数へのアクセス 変数の展開 入出力 出力 フォーマット出力 出力先変更 標準入力 __END__ 演算 +1 整数/整数 負数の除算 文字列 真と偽 多重代入 多岐分岐 関数 関数 関数引き数 関数引数に対する副作用 関数のデフォルト引数の値の評価タイミング 関数のデフォルト引数にコンテナ型を使用した場合の振舞 関数戻り値 関数の再帰 関数の別名 関数定義内関数定義 関数の引数の順番 関数にファイルハンドルを渡す オブジェクト指向 クラスの定義 インスタンスメソッドの定義 メソッドのクラス内での利用 インスタンスメソッドの可視性 インスタンスメソッドの追加 インスタンス変数 インスタンス変数の可視性 インスタンス変数の追加 クラス変数 クラスの継承 多重継承 スーパクラスのメソッド呼び出し

  • JavaScriptでヒアドキュメントを使うライブラリを作った。 - こせきの技術日記

    JavaScriptでヒアドキュメントを使うライブラリを作りました。 heredoc.js http://www.teria.com/~koseki/memo/jsheredoc/heredoc.js テスト http://www.teria.com/~koseki/memo/jsheredoc/test.html 外部ファイルサンプル http://www.teria.com/~koseki/memo/jsheredoc/tests.txt 使い方 scriptタグ内に直接書き込む使い方(インラインモード)と、外部ファイルを読み込んでコールバックを実行する使い方があります。 インラインモード <script src="heredoc.js"> # ここはscriptとして解釈されません。 str1 =<<EOT 複数行の文字列です。 下の行でおわりです。str1はグローバルになります。

    JavaScriptでヒアドキュメントを使うライブラリを作った。 - こせきの技術日記
  • 継続渡しによる停止・再開可能な反復処理 - JavaScriptライブラリでお馴染みの$関数を関数スタイルで実装してみる

    ここ最近の Scheme プログラミングで得た感覚を踏まえ、各種 JavaScript ライブラリでお馴染みの $ 関数 (ID による要素検索) を、ごく簡易にですが、関数スタイルで実装してみました。 まずは実装を見ていただく前に、このような例を考えてみてください。 $("id").do_something(); ここで、"id" 要素が確実に見つかるかどうかが保証されていない (do_something が失敗するかもしれない) とします。すると、 var o = $("id"); if (o) { o.do_something(); } のように、いちいちテストをしなければいけませんよね。 これが、関数スタイルでは $("id", do_something); と書くだけで済みます。つまり、$ 関数自身が成否のチェックを行い、成功していればコールバック関数にオブジェクトを渡すように設

    継続渡しによる停止・再開可能な反復処理 - JavaScriptライブラリでお馴染みの$関数を関数スタイルで実装してみる
  • JSirb - Javascript で Ruby コンソール (nakatani @ cybozu labs)

    JSRuby を CodeRepos に登録すべく、「いじってもらう前にここだけはちゃんとしとかんとなー」というところをせっせと作り込んだり、機能テストをちまちま書いたりしています。 これがまあ結構忍耐のいる作業なもので、ちょっと飽きちゃったりすることも。 というわけで気晴らしにさっくり JSirb なんて作ってみました。 名前の通り、Webページに埋め込める JSRuby のコンソール。サンプル( (1..10).each…… ) の入っているテキストボックスで Enter を押すと実行されます。 ただし機能的には前回と変わっていないので、まだまだほとんどの Ruby の機能は使えません(すんません~)。 まあまだあまり作り込んでいないので、出力やエラーがあまあまなのはご勘弁。

  • S6 公開に関する方針 - IT戦記

    12 月中にプレゼンテーションツール S6 を公開しようと考えていますが、ライセンスは MIT ライセンスにしようと考えています。 ということで、今まで作った以下のプレゼンにから読み込まれている s6.js ファイルのライセンスはすべて MIT ライセンスということにします。 http://amachang.art-code.org/pr/ http://amachang.art-code.org/shibuyajs24/ http://amachang.art-code.org/ejohn/ これから、たくさんの人が S6 に参加しやすいようにコードのリファクタリングや、テストの自動化などを行っていく予定です。 よろしくお願いします。

    S6 公開に関する方針 - IT戦記
    Wacky
    Wacky 2007/11/22
    プレゼンテーションツール S6 を公開しようと考えていますが
  • ブラウザから手軽に使えるJavaScriptの統合開発環境『TIDE』 | 100SHIKI.COM

    これはすごい・・・。 TIDEは「Tiny IDE(統合開発環境)」の略らしい。 そのシンプルな名前にたがわず、実に手軽にJavaScriptを書いて、テストすることができる。日語もきちんと通るようだ。 しかもIDEだけあって、変数の中身をウォッチしたり、ステップごとに実行していくことが可能だ。 JavaScriptは慣れていないとどうにもとっつきにくかったりするが、こうした環境があればその動作を確認しながら学習していくことができるだろう。 まだベータ版ということで多少のバグがあるようだが、これからJavaScriptをやってみよう!と思われている方にはお勧めだ。

    ブラウザから手軽に使えるJavaScriptの統合開発環境『TIDE』 | 100SHIKI.COM
    Wacky
    Wacky 2007/11/21
    IDEだけあって、変数の中身をウォッチしたり、ステップごとに実行していくことが可能だ。
  • for 文を setTimeout に変換する - IT戦記

    for 文で 100 項目とか 1000 項目とかあるテストケースを処理するとブラウザが固まる。 こんなダイアログが表示されます。 ということで for 文を setTimeout や setInterval に変換する事で定期的にブラウザに処理を戻すことができる。 // ここでは console.log のところでログを取ってますが // 通常は処理が入ります。 for (var i = 0; i < 3; i ++) { console.log('a' + i); } /* * 結果 * a0 * a1 * a2 */ これをまず while 文に変換 var i = 0; while (true) { if (!(i < 3)) break; console.log('a' + i); i ++; } /* * 結果 * a0 * a1 * a2 */ で、 setTimeout に

    for 文を setTimeout に変換する - IT戦記
  • 502 Bad Gateway

    502 Bad Gateway nginx

    Wacky
    Wacky 2007/11/02
    とにかく関数呼び出しが最小になるようにすればいい