タグ

JavaScriptとcacheに関するraimon49のブックマーク (18)

  • 最近Reactを始めた人向けのReact Hooks入門

    ReactにHooksの仕組みが導入されてからずいぶん経ちました。Hooks導入当時のコミュニティの熱狂は、それはもう凄いものでした。「Reactにとんでもない機能が実装されたぞ!」と大騒ぎで、Hooksについての新しい記事を見ない日はありませんでした。 そんな盛り上がりも冷めつつあり、Hooksも実務に密着した「当たり前」の機能になったのかな、と思いました。しかしその一方でまだHooksについてはよくわからないという人も多く、知識の二極化を生んでいるように感じます。 世の中にはReactにすでに全く馴染んでいる人向けのHooksの解説記事は多く見当たりますが、最近のReact初心者に向けてのHooks解説記事はあまり多くありません。この記事では、Hooksについて実例を示しつつReactの基礎的な面からの解説を行います。 React初心者向けのHooks 世の中にはもう多くの高品質なHo

    最近Reactを始めた人向けのReact Hooks入門
  • ブラウザバック時の表示を最適化する Yahoo!ニュースの取り組み事例

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo!ニュース を担当しているエンジニアの喜楽です。 今回は、Yahoo!ニュースが取り組んでいるブラウザバック時の表示最適化手法について紹介します。 なぜブラウザバック時の挙動に注目するのか ユーザーがYahoo!ニュースのページを閲覧し、別のページに遷移する方法は大きく分けて以下の2つが考えられます。 (A) リンクをたどってページを遷移する (B) ブラウザーのナビゲーションボタンまたはスワイプ操作によって遷移する 「戻る」による遷移(ブラウザバック) 「進む」による遷移(ブラウザフォワード) Yahoo!ニュースでは総PVのうち一定程度が(B)のブラウザバックまたはブラウザフォワードによるページ遷移時のも

    ブラウザバック時の表示を最適化する Yahoo!ニュースの取り組み事例
  • 進化するWeb ~Progressive Web Appsの実装と応用~(de:code2018より)

    2018年5月に開催された日マイクロソフト主催のイベントde:code 2018で「進化するWeb ~Progressive Web Appsの実装と応用~」というセッションを担当しました。 イベントに参加できなかった方に向けてセッションの内容を記事にまとめましたので、ぜひご覧ください。 進化する Web ~ Progressive Web Apps の実装と応用 ~ from Osamu Monoe この記事では、昨今話題に上ることが多いPWAことProgressive Webアプリケーションについて、実際の作り方を解説しながら、それがいったいどういったものであるかを詳(つまび)らかに紹介することを目的としています。 Webでは、「ネイティブアプリと同じことができる」「ネイティブアプリを置き換える」など、期待に胸を膨らませずにいられない浪漫に満ちた噂がありますが、それが当かどうか記事

    進化するWeb ~Progressive Web Appsの実装と応用~(de:code2018より)
    raimon49
    raimon49 2018/07/10
    何故Service Workerではlocalhost(127.0.0.1)接続以外はhttpsの使用が必須なのか、すごく分かり易い説明。
  • Service Worker スクリプトのインストールと更新処理

    Service Worker の実装が主要ブラウザで揃い始めて盛り上がってきましたね。その流れに便乗して久しぶりに Service Worker の仕様や実装に関する記事を書いてみました。今回は Service Worker スクリプトのインストールと更新処理についてです。 この記事は Service Worker スクリプトを少しでも手書きして動かしたことがある人を想定読者にしています。Service Worker について全く知らない人はまず別の入門記事を参照してください。また、細かいことを気にせずに Service Worker を使いたい人は Workbox といったライブラリやフレームワークの利用をおすすめします。 更新履歴 2019/09/24: Chrome 78 から importScripts() も更新対象になりました。それについて加筆しました。 2018/06/07:

    Service Worker スクリプトのインストールと更新処理
  • ep17 Service Worker | mozaic.fm

    Theme 第 17 回のテーマは Service Worker です。 今回は @kinu さんと @nhiroki\_ さんをお迎えして、今実装や仕様策定が進んでいる Service Worker について、なぜこうした仕様が出てきたのか、これを用いて何ができるのか、これがどう Web を変えるのか。 実装や仕様の裏話や、これが普及してからの懸念点なども含めて、じっくり議論しました。 また、Service Worker へのフィードバックは bug tracker (基英語ですが、日語でも良いそうです)、もしくは #serviceworker です。 Show Note 関連仕様 ServiceWorker AppCache Push API Notifications API Fetch Permissions API Service Worker の始まり(0:00) Ser

    ep17 Service Worker | mozaic.fm
    raimon49
    raimon49 2015/04/25
    パーミッションの整理が大変そうだと云う印象を持った。
  • Extensible Web を支える低レベル API 群 - Block Rockin’ Codes

    Intro 最近 Extensible Web の話がたまに出るようになりましたが、なんというかレイヤの高い概念(ポエム)的な話が多い気がしてます。 もう少し具体的な API とか、「それコード書く上で何が変わるの?」って話があまりないので、今日はそこにフォーカスして、 Extensible Web 的な流れの中で整理された API の話をします。 しかし、実際には API が 「Extensible Web という理念で生まれたかどうか」は自明ではないので、 今標準化されている低レベルな API を拾い、それを整理するというエントリだと思ってもらと良いかもしれません。 あまり知られてない API もあると思うので、これを期に「これがあれば、今までできなかったアレが、標準化や実装を待たなくても、できるようになるな」と思ったら是非書いてみると良いと思います。 実際はそれこそが Extensi

    raimon49
    raimon49 2015/02/09
    multipart/form-data抽象化のFormData便利っぽい。
  • Introduction to Service Worker: How to use Service Worker - HTML5 Rocks

    Web Platform Dive into the web platform, at your pace.

    Introduction to Service Worker: How to use Service Worker - HTML5 Rocks
    raimon49
    raimon49 2015/01/08
    Service Workerのスコープは登録されたorigin単位。
  • WKWebViewで躓いた10つのまとめ - Qiita

    WKWebViewについてわかったこと。iOS 8.1.0の時点での情報です。 StackOverflowやDeveloperForumsからの情報と、私がOhajiki Web Browserを開発する過程で得た知識を短めにまとめてみました。 これ以外にもまだまだ細かい部分があるかと思いますが、より良い方法や補足などがありましたらコメント欄で是非とも教えていただければ幸いです。 iOS 9での変更点はこちら: iOS 9 WKWebView 主な変更点をざっくり tmpフォルダ以外は file:/// を使ってアクセスできない iOS8.0.2からtmpディレクトリ以下のファイルに fileプロトコルでアクセスすることが可能になりましたが、それ以外のディレクトリからのアクセスは無効となっています。WKWebViewが普及しない一番の要因はこれではないでしょうか。 こちらで試すことが出来ま

    WKWebViewで躓いた10つのまとめ - Qiita
  • 超会議3の超チューニング祭の感想

    さて、超チューニング祭が終わったので、感想を書こうと思う。すでに、参加者の中で、感想を書いている人もいる。 レポート - 超チューニング祭で努力賞(最速賞)をとるためにやったこと - Qiita ニコ動 超チューニング祭で最優秀賞もらいました 超チューニング祭に参加した - masarakki's blog JavaScript - 超チューニング祭に参加&表彰した - Qiita kmizu/slide_cho_tuning また、いつの間に行ったのか、優勝者に取材したところもあるらしい。 『ニコ超3』の超チューニング祭で、“創世神”戀塚昭彦氏を上回ったカップルが見せたバランス感覚 - エンジニアtype さて、筆者の視点からみた超チューニング祭はどうだったか。 そもそも、私がスタッフとして配置されるブースは、超時空ニコニコ研究所であるはずだった。しかし、超会議にさかのぼること三週間前、

    raimon49
    raimon49 2014/04/30
    cyouosoiserver, ベンダープレフィックスと不自由なフォントの削除の下りが面白過ぎる。
  • はてなブログにおけるページ表示速度改善の取り組みについて - Hatena Developer Blog

    こんにちは、id:hakobe932です。はてなブログではユーザ体験の改善のために、ページ表示速度を向上させるための様々な取り組みを行っています。このエントリーでは、はてなブログで行っている、ブラウザキャッシュの活用、JavaScriptのページ最下部での読み込み、JavaScriptの圧縮、という3つの取り組みについて解説します。 ブラウザキャッシュの活用 同じ内容のJavaScriptCSSを、ページを表示するたびにダウンロードすると、余分なHTTPリクエストが発生しますし、読み込み時間がかかります。 ブラウザのキャッシュを利用できれば、余分なリクエストを減らすことができます。はてなブログでは、なるべく長い間ブラウザにキャッシュを保存するために、JavaScriptなどの一部の種類のファイルのレスポンスに、以下のようなヘッダを指定しています。 $ curl -I http://hat

    はてなブログにおけるページ表示速度改善の取り組みについて - Hatena Developer Blog
    raimon49
    raimon49 2014/03/14
    JavaScriptファイルをデプロイ時minifyして配信することがコストに対して恩恵が余り無いから使ってません、という話。パラメータにバージョン番号じゃなくてコミットハッシュ使ってる点もデプロイ回数の多さを物語ってる
  • HTML5 開発者向け iPhone 5 / iOS 6 での変更点等まとめ

    iPhone 5 / iOS 6 における変更点などを、開発者向けにまとめた海外記事がありましたので、簡単にですが日語にしてご紹介。対訳ではなくて、内容だけ伝わるようにかなり変更していたり、省略もしていますので、詳しくは原文をご確認ください。 iOS 6 がリリースされましたがアップデートされましたか?私はマップアプリをよく使うのですが、早速アップデートした方々の、マップがぁぁという叫びにびびってまだアップデートできておりません… で、まだ私の手元の iPhone 4S では iOS 5 が元気に動いている今日この頃ですが、iPhone 5 / iOS 6 における変更点などを、開発者向けにまとめた海外記事がありましたので、簡単にですが日語にしてご紹介。対訳ではなくて、内容だけ伝わるようにかなり変更していたり、省略もしていますので、詳しくは原文をご確認ください。 原文 iPhone 5

    HTML5 開発者向け iPhone 5 / iOS 6 での変更点等まとめ
    raimon49
    raimon49 2012/09/24
    >同一ドメイン上にあるコンテンツでも、Chromeless webapps として提供されている場合は、ストレージは個別のものとなります。異なる Chromeless webapps 間でデータの受け渡しが必要な場合は注意が必要です。
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

    raimon49
    raimon49 2012/03/25
    ローカルキャッシュで読み込みボトルネックの回避 & コネクション節約 DOMContentLoadedとwindow.onloadまでの時間が短縮
  • 実践・ウェブアプリ高速化テクニック#Chrome+HTML5 Conference

    raimon49
    raimon49 2011/08/22
    ユーザー視点重要。Gmailのスターを例に。ユーザーに見える部分は先に出す。
  • 戻るボタンが押された際、ページのJavaScriptを途中の状態から実行させない方法

    スマートフォンを含む最近のブラウザでは、戻るボタンで前のページに戻った際に、JavaScriptも含めて前回の最後の状態を復元します(Back Forward Cacheと呼ばれます)。これはとても便利なのですが、ページを作成する立場からすれば、余計なお世話であることもあります。 Back Forward Cacheの無効化はとても簡単に実現できます。ページの中にonunloadを書くだけです。 <!DOCTYPE html> <html><head><title>onunload test</title> <script> window.onunload = function() {}; window.onload = function() { var count = 0; var loop = function() { document.getElementById("num").in

    raimon49
    raimon49 2011/06/05
    window.onunloadイベントでBack Forward Cache無効化
  • JavaScriptでHTML5のキャッシュを更新する - Webアプリ作りたい :D

    jQuery, JavaScript, Web Apps, HTML5, iPhoneSafariの場合、マニフェストファイルを更新しただけではローカルのキャッシュを変更してくれませんでした。そこで、JavaScriptでマニフェストファイルの変更を検知させ、マニフェストファイルが変更された場合にはキャッシュを最新のものに変更するという処理をさせています。iPhoneでもこの方法で更新できました。firefoxやieでは対応していないみたいです。。。キャッシュ更新のプロセスキャッシュ更新(変更)は、以下のプロセスで行われますキャッシュ更新ステータスのイベントリスナーを設定(ステータスに変更があった場合に指定された関数が自動的に呼び出される)特定の間隔でマニフェストをチェックマニフェストに変更がある場合、自動的にファイルをダウンロードするキャッシュのダウンロードが完了した場合は、キャッシュを

    raimon49
    raimon49 2010/09/16
    アプリケーションキャッシュ 明示的に更新
  • Greasemonkeyで永続的に外部スクリプトを利用する - 技術メモ帳

    GM_setValue / GM_getValue + unsafeWindow.eval を使って 永続的に外部スクリプトを利用する方法を考えてみた。 わざわざ DOM で script要素 を毎回注入するよりも 速いんじゃないかと思う。 Greasemonkeyには、GM_setValue / GM_getValue というのがあって、 GM_setValue("キー", "値") 上記のように入力してあげる事によって、たとえ、 Firefoxを終了させたとしても消えないデータを作成する事が出来る。 そして、それを利用して、 初回のみ XmlHttpRequest で外部スクリプトデータを取得して、 GM_setValue でスクリプトデータを永続化しておき、 二回目以降は、それを GM_getValue して eval するようにした。 以下は、永続的に prototype.js を

    raimon49
    raimon49 2008/06/29
    初回実行時だけXHRで外部ライブラリを読み込んで、取得したresponseTextをGM_setValueでローカルキャッシュしておく。
  • JavaScriptやCSSの更新時にキャッシュから読ませない

    おそらく架空のストーリ プログラマ「プログラムを更新しました」 テスター「いきなりエラーがでますよ!動作確認したんですか!」 プログラマ「え、私のところでは動くけど…、キャッシュクリアしました?」 テスター「キャッシュをクリアしたらエラーがでなくなりました」 テスター「でも、ユーザ全員にキャッシュをクリアさせるの?」 今日、JavaScriptCSSの更新時にキャッシュから読ませない方法を知りました。 先人達は偉大すぎます。 <link href="common.css" rel="stylesheet" type="text/css"> この記述だとサーバ側の「common.css」を更新しても、 クライアント側のキャッシュの「common.css」が使用されて、 サーバ側の変更が反映されない可能性があります。 これをcssやjsにクエリー文字列を付加することで、 「common.cs

    raimon49
    raimon49 2008/05/16
    外部ファイルの末尾にクエリー文字列を付加
  • XMLHttpRequestまとめ - Archiva

    Make a note of it: Web tech, montaineering, and so on. Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。 XMLHttpRequestは、スクリプト言語からサーバとのHTTP通信を行うための組み込みオブジェクト(API)。既に読み込んだページ上からHTTPリクエストを発することができるため、ページ遷移なしでサーバとのデータ送受信が可能になる。Ajaxの基幹技術。 実装にあたって、おおかまかな手順は以下。 文字コードはUTF-8にしておこう。 XMLHttpRequestオブジェクトを作成 XMLHttpRequestオブジェクトからデータを取得 取得したデータを編集、利用 ただしセキュリティ上の問題から、リクエストの送信は同一ドメイン内に制限されている。そのため、ドメイン

    raimon49
    raimon49 2007/12/11
    >GETメソッドの場合には標準で「キャッシュが働く」。
  • 1