タグ

ProgrammingとJavaScriptに関するagwのブックマーク (1,005)

  • ウノウラボ Unoh Labs: 画像の遅延読み込み

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: 画像の遅延読み込み
  • JSON入門:データ交換のもう一つのアプローチ - builder by ZDNet Japan

    XMLは、データ交換のための媒体として開発され導入された技術である。しかし、すべての開発者がXMLを大歓迎で受け入れたわけではない。中には、XMLの代替を実際に開発することを選択した開発者もいるのである。JSON(http://www.json.org/)(JavaScript Object Notation)も、そのようにして生まれた代替物の一つだ。稿では、JSONの設計と応用について詳しく見ていく。 JSONとは何か JSONは、JavaScriptのオブジェクト記法を用いて書式を指定する単純な方法だ。「データ指向」と呼ばれて、他の技術の設計で多用されており有名な「オブジェクト指向」と比較されることもある。JSONではプログラムの構成要素をそのまま用いるため、人間にもマシンにも理解可能な形式でデータを表現できるという特徴がある。 JSONはテキストベースのデータをやりとりするために設

  • JavaScriptのイロハ:「関数はオブジェクト」って理解できますか? - builder by ZDNet Japan

    勝つためのクラウド活用術 New Value on Azure ビジネスを次のステージへ! 50年の経験を持つアイネットが提供 ユーザー企業の使いやすさを第一に考えた ワンストップで使えるマネージドクラウド エッジ市場の活性化へ 高まるIoTを中心としたエッジ分野への期待 OSS活用が新しい時代のビジネスを拓く クラウド導入が進まない当の課題 ITベンダーだからこそ知っている クラウドに二の足を踏む企業のボトルネック 現場主導のデジタル変革 ビジネス変革のための“ITの民主化” そして 変わるIT部門の役割 ハイブリッドクラウド時代の救世主 企業ITを素早く進化させるためのAVS サービス開始から1年で大幅に機能がアップ 今時プライベートクラウドの作り方 2020年代のプライベートクラウド環境を AzureとVMwareを例に紹介 ID管理の基礎知識 新しい働き方におけるITガバナンスの

    JavaScriptのイロハ:「関数はオブジェクト」って理解できますか? - builder by ZDNet Japan
  • JavaScriptの技法:DOM操作の落とし穴とその回避方法 - builder by ZDNet Japan

    セキュリティモデルは変わった! クラウド活用、リモートワークはあたりまえ いま求められるゼロトラスト実現のために コンテナをエンプラITに! コンテナ活用の基礎 番実装が増える背景とメリット データ活用は次のステージへ トラディショナルからモダンへ進化するBI 未来への挑戦の成功はデータとともにある デジタル時代のITインフラ構築術 仮想化統合、クラウドを経て今「マルチ」へ ITインフラの最適化と継続的進化への道筋 ヤフー担当者が語る! 安心なサービスを作るための試行錯誤 効率とリスクのバランスをどうしているのか 時代はサーバ仮想化からコンテナへ あらためて整理したい企業ITにおける コンテナ活用の基礎と採用メリットを紹介 自社利用の知見・経験を顧客に提供 コンテナ活用を推進する日立製作所 VMware Tanzuを利用したモダナイズを伝授 激変するビジネス環境の中でのDX モダンアプリ

  • バックナンバー – おくvillage

    このURLのページは表示することが出来ませんでした。 IQサーバー

    agw
    agw 2008/01/15
    Prototype 1.6.0で大きく変更されたElement.observeメソッドについて、大変良質な解説がなされている。
  • [追記]JavaScriptには\uXXXXがあるんですよ / LiosK-free Blog

    2008-01-14 カテゴリ: Client Side タグ: Tips JavaScript トラックバック [追記]404 Blog Not Found:javascript - \uXXXXを使わない理由を受けて追記 dankogaiさんはあまりJavaScriptのリテラルに詳しくないのかな? 404 Blog Not Found:regexp - 全角英数字を半角に var fascii2ascii = (function(){ var cclass = '['+String.fromCharCode(0xff01)+'-'+String.fromCharCode(0xff5e)+']'; var re_fullwidth = new RegExp(cclass, 'g'); return function(s){ return s.replace(re_fullwidth,

  • javascript - \uXXXXを使わない理由 : 404 Blog Not Found

    2008年01月14日14:30 カテゴリLightweight Languages javascript - \uXXXXを使わない理由 そんなことは、ない。 JavaScriptには\uXXXXがあるんですよ[文系大学的IT系の悲哀] dankogaiさんはあまりJavaScriptのリテラルに詳しくないのかな? \uXXXXを使わないのは、訳がある。 理由は、こちら。 404 Blog Not Found:javascript - encodeURIUnicode()と%uXXXX問題 ただし、この「ほぼ」という奴がくせ者で、現状JavaScriptでは、BMPより上の文字はJavaと同じくSurrogate Pairで表現する。例えば「𪚲」(U+2A6B2)は、実体参照では𪚲なのだが、"𪚲".lengthは2であり、escape表現だと%uD869%uDEB2となる。 これが

    javascript - \uXXXXを使わない理由 : 404 Blog Not Found
  • JavaScriptがウェブを遅くする--今できる緩和策を考える

    JavaScriptの1行が、今日のブログ技術に多くのパワーを与えている。ウィジェット、共有ツール、訪問者の追跡、広告。多くの場合、ブロガーは新しい技術を自分のブログに導入するのに、JavaScriptを1行加えるだけでいい。問題は、それらの1行のJavaScriptが多数組み合わされたときに起こる。 物理学には、非線形性と呼ばれる有名な現象がある。多くの異なることが相互作用すると、結果を予測するのが難しくなるのだ。ソフトウェアの場合も違いはない。多くのコンポーネントを組み合わせると、何が起こるか予測できなくなる。これは、各コンポーネントはスタンドアロンのように振る舞うが、それらは決まった区画内のスペースと閲覧者の注意を争う関係にあるからだ。そして、この争いはすべての人を傷つける。読者、ブロガー、サービス。誰もが不満を抱くことになる。 ブロガー:疑うことを知らない被害者 ウィジェットは今流

    JavaScriptがウェブを遅くする--今できる緩和策を考える
  • document.lazy_writer

    特定のscript中に含まれるdocument.writeを上書きして、遅延描画にすることができます。 document.writeを使う広告配信スクリプトや、ブログパーツなどの挙動を置き換えることが出来ます。 外部サーバーから読み込むスクリプトをページ最後部に記述することでページレンダリングを妨げなくなります。 このページはこんな感じになってます。 var adsense_url = 'http://pagead2.googlesyndication.com/pagead/show_ads.js'; document.lazy_writer(adsense_url, function(str){ var id = "adsense_" + this.script_count; document.getElementById(id).innerHTML = str; }, {delay :

  • peter.michaux.ca - Lazy Function Definition Pattern

    Lazy Function Definition Pattern Published August 11, 2007 in JavaScript This article examines a functional-programming design pattern I've been calling Lazy Function Definition. I've repeatedly found this pattern useful in JavaScript especially when writing cross-browser libraries that are efficient at runtime. Warm-Up Problem Write a function foo that returns a Date object that holds the time th

  • 第30回 JavaScriptの動作を軽くするための工夫:ITpro

    今回はJavaScriptとWebページの表示・操作の体感速度について考えてみます。というのは,JavaScriptのせいでWebページの表示や操作などの速度が遅くなっている,と感じることがあるからです。 現在のWebサイトでは,JavaScriptを使って使い勝手を向上することは,ごく当たり前に行われています。例えば,動的にページを書き換えたり,ページ遷移を行わずにサーバーと通信を行ってデータを取得したりと,JavaScriptを使うことで,Webサイトをより便利に,より使いやすくすることができます。 Ajaxという言葉がはやってから,もう2年以上がたつんですよね。何年か前,JavaScriptはじゃまで,セキュリティを低下させる不要なものだと見なされていた頃がありました。しかしそれから一変して,「JavaScriptをがんがん使ってもいい」という空気になったことで,Webサイトを作成す

    第30回 JavaScriptの動作を軽くするための工夫:ITpro
  • 最速インターフェース研究会 :: Function.prototypeを拡張して遅延実行を実現する

    JavaScriptにおいて関数というのはFunctionオブジェクトで、他のビルトインオブジェクトと同様に、組み込みのメソッドがある。これがapplyとcallしかないのだけれど、こんな感じに使う。 func.apply(thisObj,arguments) func.call(thisObj,arg1,arg2,arg3) thisObjには、その関数内で「this」として使うオブジェクトを指定する。applyの第二引数はargumentsオブジェクトを指定する。配列か、現在実行中の関数のargumentsオブジェクトを丸ごと別の関数に引き渡せる。つまり引数の長さが良くわかってなくても使える。 callは代わりに func.apply(thisObj,[arg1,arg2,arg3]) と書けるので、実はいらないんじゃないかと思う。 これらは多分、ふつうにJavaScriptを書く上で

  • Douglas Crockford's Javascript

    JavaScript Actual JavaScript Engine Performance JavaScript: The Wrrrld's Most Misunderstood Programming Language The World's Most Misunderstood Programming Language Has Become the World's Most Popular Programming Language A Survey of the JavaScript Programming Language Code Conventions for the JavaScript Programming Language The Little JavaScripter Private Members in JavaScript Prototypal Inherita

    agw
    agw 2008/01/12
    Douglas Croskford's Javascript
  • 継続渡しによる停止・再開可能な反復処理 - JavaScriptライブラリでお馴染みの$関数を関数スタイルで実装してみる

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

    継続渡しによる停止・再開可能な反復処理 - JavaScriptライブラリでお馴染みの$関数を関数スタイルで実装してみる
  • 多元配列を一元配列に変換 (JavaScript): Days on the Moon

    なんだかよくわからないことになったのでメモしておく。きっかけはある要素ノード中のすべてのノード (テキストノードも含む) を集めようと思ったこと。childNodes では子要素の内容が取得できないし、getElementsByTagName("*") ではテキストノードが取得できない。今までの自分だったらこうしていただろう。 function getDescendants(node, previousNodes) { if (!previousNodes) previousNodes = []; var children = node.childNodes; for (var i = 0, length = children.length; i < length; i++) { var child = children[i]; previousNodes.push(child); if

  • 関数的っポイ!? JavaScript: Days on the Moon

    関数型プログラミング言語を触ったことがないのでこれが関数的かどうかは知らないが、いちいち function とか return とか書くのは面倒くさいと思ったのと「関数の変形」や beyond.js 、boost::bind に影響を受けて、関数の変形を行うライブラリを作った。 まずは引数の束縛、及び入れ替え。「関数の変形」及び boost::bind にならって後々入力される引数を _n であらわすことにする。 function concat(a, b) { return "" + a + b; } concat.bind(_1, "a")("b"); // "ba" concat.bind("a", _1)("b"); // "ab" concat.bind(_2, _1)("a", "b"); // "ba" concat.bind(_1, _1)("a"); // "aa" 次に関

  • IT戦記 - arguments を直接的に配列化

    Own Properties は同じだからプロトタイプだけ入れ替える (Firefox Only) id:cheesepie:20070129:1170012588 を見ていて思いつきました。 arguments.__proto__ = Array.prototype; ちなみにクロスブラウザなやり方 3 つ // 1 for(var i = 0, args = []; i < arguments.length; i ++) args[i] = arguments[i]; // 2 arguments = Array.apply(null, arguments); // 注意: コメント欄参照 // 3 for(var n in Array.prototype) arguments[n] = Array.prototype[n]; 別に配列化しなくても配列の関数は使えます 配列のプロトタイ

    IT戦記 - arguments を直接的に配列化
  • Scheme 的多値の実装 - (new Hatena).blog()

    擬似的なものですが、Scheme の多値の受け渡しの仕組みを実装してみました。このようなものです: call_with_values( function(){ values(1, 2, 3) }, function(a, b, c){ // a == 1, b == 2, c == 3 } );call_with_values の第一引数は多値を返す関数で、第二引数はそれを受け取る関数です。 多値と言っても JavaScript ですのでただの配列なんですが、それを関数に渡す際にばらしてやることで、擬似的に多値を実現することが出来るわけです。 実装はこんな感じです: function values() { return list_tail(arguments, 0); // Or, return Array.prototype.slice.call(arguments); } functi

    Scheme 的多値の実装 - (new Hatena).blog()
  • https://labs.cybozu.co.jp/blog/kazuho/archives/2006/12/oo-settimeout.php

  • 週記くらい - クロージャとは

    freehttp://d.hatena.ne.jp/smeghead/20071216/closure の続きというか今回はもうすこし真面目にあえて、コードレスで、自分の理解しているところのクロージャを説明してみるテストです。まず、誤解を恐れずに書いてしまうと、言語によってクロージャという機能が提供されている訳ではない。クロージャというのは、ある機能の副作用を用いたテクニックの名前である。クロージャと呼ばれているテクニックを使える言語は、以下の機能を提供しています。言い換えると、以下の機能の副作用によってクロージャというテクニックを使用できるようになります。 レキシカルスコープ(静的スコープ)関数がファーストクラスオブジェクト(第一級オブジェクト)であることレキシカルスコープオブジェクト(主に関数)が定義された時に、その場所から参照できる範囲を、オブジェクト(主に関数)の実行時にも参照でき