タグ

JavaScriptに関するtermin2のブックマーク (55)

  • 結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 - Qiita

    結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 一年ほど前に JavaScript - jQuery.Deferredを使って楽しい非同期生活を送る方法 - Qiita [キータ] という記事を書きました。 で、一年経って、ふと、「もっと分かりやすくjQuery.Deferredの便利さを説明できるんじゃないか」と思い立ってざざざっと書いてみました。 小話と言うにはちょっと長いけど。 -- jQuery.Deferredを使うと嬉しいのは、jQuery.Deferredの仕様を満たす部品同士を簡単に組み合わせることが可能だからです。中には処理を書き下すことができるとかコールバックのネストを防げるのがいいとか言う人もいますが、個人的にこっちのほうがよっぽど重要だと感じます。 例えるならレゴブロックです。レゴブロックはあの凸と凹を持ってるブロックを自由に組み合

    結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 - Qiita
  • AjaxアプリケーションのSEOについて調べてみた | keisuke tsukayoshi

    Backbone.jsやEmber.js、AngularJSなどの流行りのMVCフレームワークを用いたAjaxアプリケーションのSEOについて少ししらべてみました。SEOというかクローラー対策っぽいですが。ブログ的には始めての開発系の記事。 AjaxアプリケーションのSEO的な問題 そもそもどうしてAjaxアプリケーションがSEO的にやばいかというと、一旦空のHTMLを読み込んだあとJavaScriptを使ってクライアントサイドでコンテンツをレンダリングする仕組み上、Googleのクローラーのような特殊な環境だと内容を正常に読めないというのが現状らしい。というわけでこれを如何にして読み込ませるかが件のゴールになります。 STEP1:Ajaxアプリであることをクローラーに伝える #!(ハッシュフラグメント)をURLにつける URLに#!(ハッシュフラグメント)が含まれているとクローラーはそ

    AjaxアプリケーションのSEOについて調べてみた | keisuke tsukayoshi
  • 『PhantomJSを使ったスマホサイトテストの自動化(前編)』

    1 pixel|サイバーエージェント公式クリエイターズブログ サイバーエージェントのクリエイターの取り組みを紹介するオフィシャルブログです。最新技術への挑戦やサービス誕生の裏話、勉強会やイベントのレポートなどCAクリエイターの情報が満載です。 みなさんこんにちは! スマホ版Ameba担当の川口です。 ちょうど一年前、同じようにJavaScriptを使ったテスト手法について記事を書かせていただいたのですが、今回も懲りずにまた同じようなテーマで再登場いたしました。 JavaScriptのテスト手法 さて、スマホ版Amebaの全面リニューアルから早くも1年経ったのですが、今回はそんなスマホ版Amebaで日々自動テストツールとして活躍してもらっているPhantomJSを紹介させていただきます。 長い記事になるため、今回は前編・後編に分けて以下のような構成でお送りいたします。 ●前編 ・Phanto

    『PhantomJSを使ったスマホサイトテストの自動化(前編)』
  • Casper.JSのススメ - After Coding

    2013-08-17 Casper.JSのススメ Phantom.JSというヘッドレスブラウザがある。 これが超便利なんだけど、セッション周りとか込み入った操作をしようと思うと途端に操作(JSファイルへの記述)が面倒になる。 そこで、Casper.JSの出番だ。 CasperはPhantomと連携するライブラリで、簡単な記述で複雑な操作を実現することができる。 また、Phantomのレンダリングエンジンはwebkitで、Gekkoで動いているSlimer.JSってのもあって、これらの上で動くCasperを使っているとレンダリングどっちも使えるので捗る(と思う)。 今回はEnd-to-Endテストの実現を目的に、Casper.JSでwebサイトのHTMLを解析してみる。 もちろん、スクレイピングなどにも応用可能だ。 ↑ヨルムンガンドに出てくる主人公(ココ・ヘクマティアル)の兄キ

  • jQueryプラグインの中に出てくるセミコロン「;」

    jQueryプラグイン jQueryプラグインのソースを読んでいると、無名関数の先頭にセミコロン「;」を付けているのを見かけたりします。 たとえば、fancyboxとかがそうです。 ;(function($){ ..etc })(jQuery); jQueryの$関数みたいなものかな?と思いつつ、JSLintとかで文法チェックするとエラーになりますよ。 ただ、なんとなく予想はついていたので、ググってみると英語のフォーラムに書いてありました。 http://markmail.org/message/3gppon7hfmw7jqr7 ざっくり書くと、「セミコロンが先頭にあるプラグインを読み込む前に、セミコロンがちゃんと書かれていないコードがあるとバグッちゃうからつけといたよ!」ということですね。 jsでのセミコロン jsではセミコロンの自動補完という謎の機能があるため、こんな感じの残念なソース

  • jQuery で ;(function () ...と、セミコロンで始めることがあるのはなぜか - わからん

    追記 たくさん反響があって驚きました。念の為書いておくと、私はこの記事で仕組みを解説しただけで、このようなノウハウに賛成も反対もしていません。追記はここまで。 azu さんのつぶやきで知った、Dangers of anonymous function closures が、例がよいのに説明が少ないので、ここで丁寧に解説します。なぜ、 jQuery で ;(function () ...とセミコロンで始めるコードがあるのかがわかります。 次のサンプルの実行結果を想像して下さい。 var foo = function(bar) { console.log("foo"); return bar; } (function(){ console.log("bar") })(); 結果は "foo bar" を印字します。多くの場合、これは意図しない挙動だと思います。"bar" だけだと思いませんか。

  • jQueryのDeferredを用いたモダンなAjax処理の書き方

    目次 jQuery 1.4以前の書き方jQuery 1.5以上の書き方jQuery 1.8以上の書き方【発展編1】Deferredを用いた書き方 deferredとは何か?【発展編2】$.when() を用いた書き方参考エントリは軽めのjQuery Advent Calendar 2012の14日目の記事として書きます。軽めといいながら少し重めになってしまった感がありますが、初めてのAdvent Calendar参加ということでご勘弁を。 ※ Twitter API仕様変更によりTwitter APIを使ったコード例は現在動作しなくなっていることにご注意。 jQuery 1.4以前の書き方まずは、少し古めのコード、昔のjQueryのとかでよく見る書き方。 $.ajax({ url: "ajax.html", success: function(data) { alert('succes

    jQueryのDeferredを用いたモダンなAjax処理の書き方
  • CreateJS | A suite of JavaScript libraries and tools designed for working with HTML5

    A suite of modular libraries and tools which work together or independently to enable rich interactive content on open web technologies via HTML5.

    CreateJS | A suite of JavaScript libraries and tools designed for working with HTML5
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • JavaScriptで画面サイズを取得する | かえラボBlog

    screen.width   画面幅 : screen.height   画面高 : screen.availWidth   有効画面幅 : screen.availHeight   有効画面高 : window.innerWidth   表示領域幅 : (IE非対応) window.innerHeight   表示領域高 : (IE非対応) window.outerWidth   ウィンドウ幅 : (IE非対応) window.outerHeight   ウィンドウ高 : (IE非対応) $(window).width()   表示領域幅 : $(window).height()   表示領域高 : document.documentElement.clientWidth   表示領域幅 : document.documentElement.clientHeight

  • history.back();問題を解決してみる at softelメモ

    history.back()はブラウザの履歴を利用して1つ前のページに戻る機能です。これによりどのページから来た訪問者でも個々のユーザーに合わせたページへ戻ることができます。 この機能、多くのところでは以下のように書かれており、ブラウザからアドレスを入力して開いた場合は機能しません。 <a href="javascript:history.back();">一つ前のページへ戻る</a> 戻るリンクはそのサイトのトップなり1つ上のカテゴリページへ戻ることを意識してリンクをクリックしますので、動かなかったり、検索エンジンへ戻ったりするとユーザーはそのままサイトから離脱している可能性が高いです。 そこで対策を考えてみます。直接来た場合はトップページへ返すことを考えます。 まず、history.lengthで考えてみます。これは戻す、進むで使う履歴がいくつあるか取ることができます。ですので、直接開

    history.back();問題を解決してみる at softelメモ
  • 【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)

    こんにちは、橋です。 今回と次回の2回にわたり、Safari、ChromeのWebインスペクターやFirefoxのFireBugで使えるconsoleオブジェクトの使い方について書いてみたいと思います。 Javascriptのコードをデバッグする際に、console.logを使ってメッセージやオブジェクトの内容をログに表示することがあるかと思いますが、 この「console」オブジェクト、実はlogメソッド以外にも複数のメソッドがあります。 まずは、consoleオブジェクトにどのようなメソッドがあるか、console.logを使って表示してみたいと思います。 consoleオブジェクトの中身を見てみると、__proto__オブジェクトに以下のメソッドが定義されています。 assert count debug dir dirxml error group groupCollapsed g

    【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)
  • JavaScriptでデフォルト引数を使う - Pashango’s Blog

    最近、JavaScriptを使うことになったので勉強中。 デフォルト引数が使いたいなと思いググったところ、下のコードが沢山ヒットする。 def test(a) { a = a || デフォルト値 ... } え、これってデフォルト引数が0やFalseの場合ダメだよね・・・? 正しくはこうだと思うんだが・・・ def test(a) { if(a === undefined) a = デフォルト値; ... } 「a == undefined」ではなく「a === undefined」なので注意。 JavaScriptに詳しい方で、修正がありましたらご指摘ください。 [追記] コメントから指摘がありました。 上記の方法だとundefinedが上書きされている可能性があるので、厳密に求めたい場合は以下の方法が良さそうです。 def test(a) { if(typeof a === 'unde

    JavaScriptでデフォルト引数を使う - Pashango’s Blog
  • jQuery.parseJSON(json) - jQuery API 1.4.4 日本語リファレンス - StackTrace

    なお、引数に null、undefined、JSON文字列以外のオブジェクトを指定した場合は null を返します。 引数 json String: JSON形式の文字列 戻り値 Boolean: JavaScript オブジェクト。引数に null、undefined、JSON文字列以外のオブジェクトを指定した場合は null。 例 例1:様々な引数を指定し、結果を確認します。 // 検証する文字列 var strings = [ '{"key": 1}', '{key: 1}', 'test' ]; var i = 0; $.each(strings, function(key, value) { var res = null; try { res = $.parseJSON(value); // $.parseJSON() で変換 } catch(e) { } // 変換できた場合は

  • 初めてのjQuery:セレクターAPIを一挙解説(前編) (1/6)

    jQueryの具体的な記述方法に入る前に、そもそもJavaScriptでは何ができるかということに少し触れておきましょう。 誤解を恐れずに言えば、JavaScriptは「(X)HTMLCSS(Cascading Style Sheets)を操作するためのプログラミング言語」です。Webサイトを作成するには、通常、(X)HTMLでコンテンツの構造や内容を、CSSで見た目であるレイアウトや装飾を記述します。これに対してJavaScriptは、ユーザーの操作などが発生したタイミングで(X)HTMLCSSを動的に変更することにより、Webサイトにインタラクティブな動きを与えます。 たとえば、第1回で紹介したアコーディオンパネルは、「dt要素がクリックされたらdd要素のheightプロパティを変更する」という処理によって、パネル部分が伸び縮みする動きを実現しています。 jQueryに限らず、Ja

    初めてのjQuery:セレクターAPIを一挙解説(前編) (1/6)
  • jQuery.post( url, data, callback, type ) - jQuery 日本語リファレンス

    HTTP(POST)通信でページを読み込む。 シンプルなPOSTリクエストを送る簡単な方法で、複雑な$.ajaxファンクションを使わずにサーバと通信ができる。通信の完了時に実行される関数を引数で指定できる。これは成功時のみ実行されるので、失敗時と成功時の両方をカバーするには、$.ajaxを使う必要がある。

  • Twitter の JSON に罪はない

    TwitterのステータスIDが53bitを越えたお話 - tmytのらくがき http://d.hatena.ne.jp/tmyt/20101201/1291166929 から引用。 このうちXMLで処理してる場合は内部で64bit INTで処理していれば特に問題は起きません。 こういう微妙なまちがいをしてる人はこの記事書いた人だけでなく大勢いるようだけど、記事としてはまとまっていたので参照。 JSON という書式は、確かに JavaScript から派生したサブセットですので、 JSONを仕様書通りにパースするとidの値はdouble と考えてしまうのも無理はない気はします。 が、まちがいであるのも確かです。 RFC 4627 - The application/json Media Type for JavaScript Object Notation (JSON) http://t

    Twitter の JSON に罪はない
  • TwitterのステータスIDが53bitを越えたお話 - tmytのらくがき

    僕の記事の間違いを指摘していただいているすばらしい記事です。僕の記事よりこちらの記事をご覧ください。 http://archive.guma.jp/2010/12/twitter-json.html 先日、29日の7時過ぎごろにTwitterのステータスIDが53bitを越えました。 こんな中途半端なビット数を超えただけでなぜこんな記事にするかというと、一部のクライアントで動作がおかしくなることがあるからです。 (14:14 追記しました) (14:31 もひとつ追記しました) TwitterAPIはXMLとJSONの2種類で結果を取得できます。このうちXMLで処理してる場合は内部で64bit INTで処理していれば特に問題は起きません。 問題が起きるのはJSONの場合です。JSONはJavascriptでevalすればそのまま中身が取り出せることからもわかるように、Javascript

    TwitterのステータスIDが53bitを越えたお話 - tmytのらくがき
  • JavaScriptでMP3デコーダを実装、FlashなしでMP3再生を可能に | スラド IT

    先日、JavaScriptで実装されたGAMEBOY COLORエミュレータやPCエミュレータが話題になったが、今度はJavaScriptによるMP3デコーダの実装が話題になっている。 このMP3デコーダ「jsmad」、jsmad.orgにてデモが公開されているが、現在Firefox 4以降とWeb Audio APIを有効にしたChrome 12 開発版(Linux)、Chrome 13(Mac OS X版)、Chrome Canary(ナイトリービルド版)で動作するという。 また、まったく別のプログラムだが、JavaScript製のPDFビューアなども登場しているようだ。

  • JS history

    The document discusses a self-hosted scheme written in JavaScript. JavaScript is used to implement a minimal Scheme interpreter and runtime. The goal is to have a fully self-hosted Scheme system written entirely in JavaScript that can run in any modern web browser without any other dependencies.

    JS history