タグ

Ajaxに関するraimon49のブックマーク (188)

  • JSDeferredのparallelとwaitで最低遅延時間を設定する - Webtech Walker

    Ajaxでデータとってくる間にローディングいれるとき、場合によっては処理が一瞬で終わって逆にローディングがチカっとしてうざいので最低でも1秒はローディング出すって処理を最近だとJSDeferred使ってこんな感じで書いてる。 loading.show(); Deferred.parallel([ Deferred.wait(1), function() { var d = Deferred(); $.get('hoge', function() { // 何か処理 d.call(); }); return d; } ]) .next(function() { loading.hide(); }); 便利なり。

    JSDeferredのparallelとwaitで最低遅延時間を設定する - Webtech Walker
  • さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料 - 川o・-・)<2nd life

    日行われた Shibuya.js の発表資料をアップしました。 さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料 View more presentations from hotchpotch JS のテスティングフレームワークのおおざっぱな説明や JavaScript テストにおける問題、それについての解決方法の一つ、CUI でのテスト、Envjs、エンドツーエンドテストにおける JS / Ajax のテスト、終わりにちらっと Phantomjs の話があります。 スライドの最後にあるように、やはりまだコレだ!という JS のテスティングフレームワークは存在しなく、今後 JS のテストは『僕らが書きたいテスト』をどれだけ簡単に書ける・書く手法が確立されるかによって流行廃りは決まってくるんじゃないかなぁ、と思ってます。そのうちの一つがスライ

    さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料 - 川o・-・)<2nd life
  • ハイパフォーマンスJavaScript

    JavaScriptのパフォーマンスのボトルネックを解消するテクニックとアプローチを解説します。実行時間、ダウンロード処理、ページのライフサイクルなどJavaScriptの様々な部分に対応しながら、DOMへのアクセス、ネットワークのレイテンシ、JavaScriptの同時ダウンロードのブロッキングなど、高速なJavaScriptエンジンであっても最適化できない部分をもカバーしています。書で述べられているテクニックとアプローチは、パフォーマンスを向上する上で重要であるだけでなく、今後低レベルなJavaScriptの実行時間が短縮されていくにつれて、さらにその重要性は増していくでしょう。 はじめに 1章 読み込みと実行 1.1 スクリプトの配置 1.2 スクリプトのグループ化 1.3 ノンブロッキングなスクリプト 1.3.1 スクリプトの遅延 1.3.2 動的なscript要素 1.3.3 X

    ハイパフォーマンスJavaScript
  • 間違いだらけの「かんたんログイン」実装法

    今回は、そのかんたんログインの問題点について説明します。 「契約者固有ID」を用いるかんたんログイン かんたんログインとは、携帯電話の「契約者固有ID」を用いたログイン手法です。 第1回で説明したように、携帯電話のブラウザのリクエストヘッダには契約者固有IDと呼ばれるIDを付けることができます。契約者固有IDは、携帯電話事業者によって詳細は異なりますが、すべての携帯電話事業者が対応しています。 図1は、NTTドコモの携帯電話がサポートしている契約者固有IDである「iモードID」がサーバに送信される様子です。この情報は、ユーザーがそれと意識することなく送信されます。携帯電話のかんたんログインとは、契約者固有IDのみを用いて認証を行い、ログイン機能を実現することです。 かんたんログインは、ベーシック認証のようにIDとパスワードを管理する必要もなく、Cookieのように対応する端末を考慮する手間

    間違いだらけの「かんたんログイン」実装法
  • Web2.0の先にあるC10K問題 ― @IT

    個々のクライアントがサーバに要求する処理量は小さなものでハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする――。これが最近Web開発者の間で話題となっている「C10K問題」(クライアント1万台問題)だ。 プロセス番号が足りなくなる パンクするのは例えばプロセス番号だ。 Ajaxの実装として最近注目されている技術に“Comet”(コメット)と呼ばれるものがある。HTTPのセッションをあえて切断せずに、サーバとクライアント間でつなぎっぱなしにするテクニックだ。Cometを使えばクライアントからのリクエストに応えるだけでなく、サーバ側からも不定期に情報を送り出すことができる。例えば、Web上でチャットサービスを実装するには、通常はクライアント側からサーバに一定間隔でポーリングすることで、ほかのユーザーの発言分をサーバから取得して表示するが、Cometの

    raimon49
    raimon49 2011/03/01
    ロングポーリングの問題点おさらい。プロセス番号のパンク, スレッド割り当てメモリの破綻。
  • history.pushStateでページ遷移するjQueryプラグイン書いた - Webtech Walker

    history.pushStateでのページ遷移をやりやすくするためにjQueryのプラグインとしてjquery.smarthistory.jsというのを書いてみました。 jquery.smarthistory.js history.pushStateをサポートしてるブラウザではhistory.pushStateを使って、サポートしてないブラウザでは何もしません(普通に遷移する)。今だとchrome、safari、iOS、Firefox4で動くと思います。 こんな感じで使います。 $('a').smarthistory({ defaultData: $('html').html(), target: function() { return $(this).attr('href') }, before: function() { // ajax前の処理 }, change: function

    history.pushStateでページ遷移するjQueryプラグイン書いた - Webtech Walker
  • 「#!」 (SheBang)の語源を徹底追求 「切り刻んでビックリ」 - karasuyamatenguの日記

    「#!URL」エントリーに対するツイートやコメントで#!という文字列自体に対する疑問などが意外とあったので、ここでまとめてみる。 #!とは… ウェブとUnixで違った意味を持つ "shebang"と綴られる Hash(#) Bang(!)の略 グーグル検索tips: "#!"では何も出ない。"shebang"で検索するといい。 Unixでは昔からスクリプトファイルでインタプリタを指定する最初のラインに使われてきた 例えば ~/bin/ohhaiを #!/usr/bin/python print "OH HAI"とすればpython hoge.pyとしなくても直接コマンドとして使える $ ohhai OH HAIこのようにスクリプトファイルの一行目でインタプリタを指定する行頭に使う。詳しくはここを参照 http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%

    「#!」 (SheBang)の語源を徹底追求 「切り刻んでビックリ」 - karasuyamatenguの日記
    raimon49
    raimon49 2011/02/18
    shebangの語源 面白い
  • さらなる「#!」URL批判 - karasuyamatenguの日記

    このブログはlifehackerを含むgawkerメディア系サイトの#!URLへの移行を批判している。 http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs/ 以下、isolaniとテングの見解をごっちゃ混ぜに紹介する。 lifehacker他のgawkerメディアサイトが数日前に長時間におよびアクセス不能になった。(厳密に言うとページ内のコンテンツアクセス不能になった) #!URLベースのサイトはJavaScriptにエラーがあるとコンテンツが一切ロードせずのっぺらぼう状態になってしまうようだ。 #!について 「#!」は何で呼ぶの? shebangと綴られる。 Hash=# Bang=!の略 発音すると「シバン」といったところか。(ちなみにUnixの#!とは無関係) 以下「#URL」は: サイト内のロケーション情

    さらなる「#!」URL批判 - karasuyamatenguの日記
    raimon49
    raimon49 2011/02/12
    >#!はサイトのアーキテクチャを根本的に間違え(GoogleBotに見えなくなりSEO効果を逃し)たサイトに投げられた命綱だ。しかしFacebook、TwitterそしLifehackerなどのデベロッパはこの命綱をゴーサインと勘違いして#!街道を爆進しは
  • githubのアレ(history.replaceStateとかhistory.pushStateの話) - 愛と勇気と缶ビール

    会社で下の記事についてリマインドしてもらって、なんとなく気になっていたことを調べたメモ。 http://webtech-walker.com/archive/2010/12/06160539.html 記事を読んで、history.replaceState(null, "title", "/new.html") とかやると遷移なしでページのcontentも勝手に置き換わるのかなー、だったらあのアニメーションはどこで発火してんだ?とか考えていたがそもそもreplaceStateの動作について勘違いしていた。 要は、次のようなhtml書いてボタンをクリックしても、historyの先頭が置き換わるだけでページ自体には何も起こらない。(ただしlocation.hrefは置き換わっており、reloadすると/replace.htmlにいく) <!DOCTYPE HTML> <html lang="e

    githubのアレ(history.replaceStateとかhistory.pushStateの話) - 愛と勇気と缶ビール
    raimon49
    raimon49 2011/02/11
    history API
  • Tim Bray: 「URLに#!入れるな」 - karasuyamatenguの日記

    Tim Bray(GoogleAndroid応援団長)が「#!」の入ったajax用URLを使用を批判している。 http://www.tbray.org/ongoing/When/201x/2011/02/09/Hash-Blecch new: さらならる「#!」URL批判 例にtwittertwitter.com/#!/timbrayを挙げている。 #!の働き サーバ側は#!の前までしか見えない。上の例だとサーバはtwitter.com/のリクエストを受ける #!以降はブラウザの中のジャバスクリプトが解釈する 何故#!を使うのか ajaxのアプリは古いブラウザでは基的にURLを変更することができない… ただし#(フラグメント)以降はブラウザ内のJavaScriptからでも変更可能 なので、ajaxアプリケーションが自分の状態をURLバーに表示するために使われるようになった。 つまり

    Tim Bray: 「URLに#!入れるな」 - karasuyamatenguの日記
    raimon49
    raimon49 2011/02/11
    >ウェブの大原則に背くルール違反
  • ピュアAJAXアーキテクチャのススメ

    先日、ここで発表したFacebookユーザーむけグループウェア「Fruence.com」。今年のトレンドになるであろう「ソシアル・アプリ」の実例という意味もあったが、私自身の中で少し前から形になりつつあった「AJAXを最大限に活用した新しい形にウェブ・アプリケーション」のアーキテクチャの実践という意味合いも大きい。 このアーキテクチャの特徴は以下の3つである。 サーバー側は、JSON over HTTPのAPIHTML/CSS(およびそのテンプレート)をスタティックな形でのみ提供する(サーバー側では、ダイナミックなHTMLの生成はしない) クライアント側では、JavaScriptを使ってサーバーから取得したJSONとHTMLのテンプレートを組み合わせて(データ・バインドして)表示する。 ウェブサイトはあたかも独立したアプリのように動き、操作中はURLは一切変化しない もともとは、HTML

    raimon49
    raimon49 2011/01/09
    >しかし、Fruenceみたいなソシアル・アプリが増えて人々のアクティビティがそちらに移行すると、Googleの支配するURL空間から、 Facebookの支配するソシアル・グラフ空間へと色々なものがシフトして行くわけで、その意味で
  • 【レビュー】WebSocket未対応ブラウザにも対応「Socket.IO」技術登場 | エンタープライズ | マイコミジャーナル

    Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞. クライアントサーバ間で非同期双方向通信を実現するWebSocket APIの実装が進んでいる。今のところFirefox 4、Chrome 4、Opera 10.70、Safari 5がWebSocket APIの実装を取り込んでいる。1日現在、WebSocket APIはW3Cドラフトの段階にあり仕様は固まっていない。またIEもサポートしていない。しかしWebページやWebアプリがクライアントサーバ間通信を実施するための有用なツールになっており、優れたユーザ体験を提供するためには活用を検討したい技術になっている。 クライアントサーバ間通信はすでにAjax技術で実現されているため、WebSocket APIの利点がよくわからかいユーザも多いようだ。既存のAj

  • Safari on iPhone & iPad 4.2: Accelerometer, WebSockets & better HTML5 support | Breaking the Mobile Web

    raimon49
    raimon49 2010/11/23
    iOS 4.2のSafariがサポートした新機能のハイライト。WebSocketやXHR-2など盛りだくさん。
  • JavaScriptでのテストや開発についてのアウトプット - Block Rockin’ Codes

    最近JavaScriptを個人的に勉強しているんですが、そんなJS初心者ながら色々試すなかで気が付いた開発とかTDDとかについて色々思うところをアウトプットしてみようかと思います。 一番多いのは、ClientSideJSで、使ってるのはjQueryとQunitが中心でした。 でもこれからは別のフレームワークや、ServerSideJSなんかも出てきますし、 今読んでるが終わったら、こっちのも見てみたいと思っているので、 Test-Driven JavaScript Development: Safari Books Online その前にこれを書いておこうという目的です。自分に付ける一つのTagという感じです。 あまり一貫性に拘らず、垂れ流したいと思います。 Ajax と API 以前こんな記事を書いたように、サーバ側がAPIでデータを提供し、ロジックをクライアント側に固めるタイプの開

    JavaScriptでのテストや開発についてのアウトプット - Block Rockin’ Codes
    raimon49
    raimon49 2010/11/22
    テストケースの勘所。テストしたいUnit(単体)をきちんと把握する。DOM表示(jQueryの責務)やレスポンス内容(サーバ側の責務)は考えず、JSのロジックに注目してテストする。
  • 5509.me

    This domain may be for sale!

    raimon49
    raimon49 2010/11/20
    ポーリングしてハッシュフラグメントが変化したタイミングでhashchangeイベントをトリガするプラグイン。
  • WebSocketの現状と技術的課題

    WebSocketの現状と技術的課題:WebSocketで目指せ! リアルタイムWeb(2)(1/2 ページ) 今回はWebSocketを取り巻く技術的課題や、実装状況についてご紹介します。また私たちが開発したサービス「Pusher」についても取り上げます。 WebSocketに関連した技術的課題 前回のWebSocketの紹介を読んでくださった読者のみなさんはWebSocketを試してみたくてたまらないのではないでしょうか。でも少し待ってください。皆さんを脅かす訳ではありませんが、以下の点についても考えなければいけません。 変化し続けるドラフト IETFのドラフトを見てみると、最初のバージョン(00)は2009年の1月に策定されたのが分かります。Chromiumが最初にWebSocketの実装を発表したころのバージョンは66の辺りです。 それからしばらくの間はマイナーチェンジばかりだった

    WebSocketの現状と技術的課題
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Ajaxページへのパーマリンクを#!なしで実現する - yamasaのネタ帳

    TwitterやFacebookのURLには、なぜ#!が含まれるのか (SEOとAjaxのおいしい関係) - kazuhoのメモ置き場 Ajaxを多用しつつパーマリンクも提供しているサイトのURLは、「#!ほげほげ」のような形式になっていることがよくあります。上の記事に書かれているように、これにはちゃんと理由があるわけなんですが、やっぱり「#!なんてのが含まれるURLは格好悪い」と感じる人も多いようです。 そこで、「#!ほげほげ」なんてURLを使わなくてもAjaxの画面遷移を実現する、Session HistoryというHTML5の機能を紹介します。 Session history demo ChromeやSafariで上のページにアクセスし、地図をドラッグしてみてください。地図を動かすたびにURLが変化しているのに気づくでしょう。そこでブラウザの戻るや進むキーを押すと、地図の移動履歴を辿

    Ajaxページへのパーマリンクを#!なしで実現する - yamasaのネタ帳
    raimon49
    raimon49 2010/10/14
    Session historyでhistory.pushState
  • TwitterやFacebookのURLには、なぜ#!が含まれるのか (SEOとAjaxのおいしい関係) - kazuhoのメモ置き場

    Ajaxを使うためにはページ内リンク (hash fragment=URLの#以降) を使うのが一般的*1 hash fragmentはサーバに送信されないから、JavaScript非対応のブラウザだと動作しない 特にサーチエンジンのクローラ等で問題になる*2 そこで Google は、#! が含まれる URL を hash を含まないものに読み替える仕組みを提唱している。例えば「www.example.com/ajax.html#!key=value」のサーチエンジン用URLは「www.example.com/ajax.html?_escaped_fragment_=key=value」になる。 TwitterやFacebookはこの仕様に従うことで、Ajax な UISEO を同時に実現している、というわけ。ということを調べたなう。 参照: Getting Started  | 

    TwitterやFacebookのURLには、なぜ#!が含まれるのか (SEOとAjaxのおいしい関係) - kazuhoのメモ置き場
    raimon49
    raimon49 2010/10/13
    これに従うのが主流になって行くのかな。