New AI-Powered Demos Explore examples where AI integration adds intelligence to DHTMLX components for everyday use. Learn more
「HTML5 Advent Calendar 2013」の24日目の記事です。 Webアプリのパフォーマンス改善と言えば、JavaScriptやDOMアクセスなど、既存の技術ベースな改善手法を想像する方も多いでしょう。最近では、こうした改善のあり方を、別の視点からもう少し広げようというアイデアが存在感を持ち始めています。それは「Web標準」です。 そこで今回、Web標準側でできるWebアプリのパフォーマンス改善について、掻い摘んで紹介します。全てを説明となるとキリがないので、キーワードを中心とさせて頂きます。最近になって、結構実用化が進んできているので、悩んだ時には試してみる価値はあるでしょう。 1. リソースを先に読み込む linkタグにてURLなどを指定することで、これから先に読み込ませる可能性が高いWebページのリソースを予め読み込むWeb標準があります。ニュースサイトでは次のページ
Enterprise x HTML5 Web Application Conference 2014の発表資料です。
(1)Ajax XmlHttpRequestオブジェクト(JavaScript)を利用した非同期通信処理のこと。Googleマップを筆頭とするWebアプリケーションで活用されている。ブラウザからサーバ側に非同期でリクエストを実施してデータを受け取り、JavaScriptにより部分的にページを更新することで、ページ全体を更新するよりも低負荷でサーバと通信できる。また、通信中も操作を継続できるので、エンド・ユーザーの操作を妨げられることもなく、ユーザビリティに優れる。デメリットとして、基本的にブラウザからのリクエストで動作する仕組みなので、サーバ側から自動でデータを送信することはない。
シンプルなHTMLでレスポンシブ対応のスライダーを実装する超軽量のjQueryのプラグインを紹介します。 デスクトップのキーボード操作やスマフォ・タブレットのスワイプ操作にも対応! Unslider Unslider -GitHub Unsliderの特徴 Unsliderのデモ Unsliderの使い方 Unsliderの特徴 超軽量のオープンソース スクリプトは3KBと超軽量のオープンソースです。 実装は簡単でクリーン HTMLは非常にシンプルで、カスタマイズも容易です。 高さの調整 サイズに合わせて、スライダーの高さを自動調整します。 レスポンシブ対応 デスクトップ・タブレット・スマフォなど、さまざまなデバイスに対応。 キーボード操作の対応 キーボード(矢印キー)での操作をサポートします。 スワイプ操作の対応 jQuery.event.swipeをサポートしているので、スワイプ操作に
TwitterのストリーミングはFireFoxで動くサンプルが Ajax+Streaming API — 開発な日々 にあるのだが、これがFireFoxでしか動かなかったので、IEでどうにか動かないものかと模索してみたが、IEではAjax経由でストリーミングのデータを取得しようとするとストリームの受信状態を示す readyState=3の時に受信済みのデータ、responseTextを扱うことが出来ず、IEでは「この操作を完了するのに必要なデータは、まだ利用できません。」というJavaScriptエラーが発生する。 以前は、responseStreamで扱えたようなのだが、IEのセキュリティパッチで封印されて今は使えない模様。したがって接続の都度APIに接続・切断を繰り返してタイムラインを取得するようにすると使えるのだが、いくらAPI制限が無いStreamingでも接続と切断を繰り返してい
HTTPレスポンスをajaxでストリーミング的に受け取りたいとき、要するにHTTPストリーミングをしたい時には、Transfer-Encoding: chunkedなレスポンスを生成してやるとよい。こうするとAjaxではHTTPレスポンス全体を受け取るのを待たずに、レスポンスの中身にアクセスすることが出来るようになる。従って、一つのHTTPコネクションでサーバ側から任意のデータを好きなタイミングでプッシュすることが出来る。 コード 一秒ごとに生成されるJSONをストリーム的に受け取るデモのコードが以下。 <?php // push.php function output_chunk($chunk) { echo sprintf("%x\r\n", strlen($chunk)); echo $chunk . "\r\n"; } header("Content-type: applicati
今回はAjaxストリーミングの実装を具体的に見ていこうと思います。ストリーミングの方法はブラウザによって違いがあり、それがかなり厄介でした。特にInternet Explorerは、バージョン8でようやくストリーミングが可能になったばかりで、それより前のバージョン(6、7)ではひとつのHTTPコネクションで複数のレスポンスを得るといったことができず、ロングポーリング(Comet)といった手法で代替するしかありません。IEを除くと、FirefoxやChromeの最新バージョンは問題ありません。ただし、これらもバージョンが古いと正常に動作しないかもしれません。このようにAjaxストリーミングのクロスブラウザ化はかなり困難さを伴うものであるようです。 まず、ひとつの簡単なサンプルを作ることにしました。サーバーサイド(PHP5)でデータを小出しにするコードを書いて、それをクライアントサイドのAja
Webアプリのデバッグやチューニングに役立つ、Chrome Developer Toolsの主要機能を、スクリーンキャプチャ中心で簡潔に紹介。2014年10月に最新情報に改訂。 モダンブラウザーの中でGoogle Chromeは最後発ながら、その機能の潤沢さ、便利さ、高速さからシェアを大きく伸ばしている。そして、今やほとんどのブラウザーではWindowsの場合F12キーを押すことで(Macの場合はCommand+Option+Iキーで)手軽に各ブラウザー搭載のデベロッパーツールを利用できるが、特にChromeのデベロッパーツールは、非常に機能が豊富なため、利用している人もかなり多い。 本稿では筆者がよく使う機能や、使うと便利な機能を中心に、Chromeのデベロッパーツールについて紹介していく。なお、本書は執筆時点で、最新のChrome 38を使用している。 機能ふかん 残念ながら、Chro
「Minifier」はJavaScriptやCSSを圧縮・軽量化できるサービスです。圧縮したいコードをコピペしてワンクリックで圧縮・軽量化できますよ。 以下に使ってみた様子を載せておきます。まず、Minifierへアクセスしましょう。圧縮するファイルの形式(JavaScriptやCSS)を選択します。その後、圧縮したいコードを貼り付けて「Compress」します。 このように圧縮・軽量化されたコードが生成されました。また、このように難読化されたコードをデコードすることもできます。JavaScriptやCSSを書く方は要チェックですね。ぜひご活用ください。 Minifier (カメきち)
こんにちわ、コードネームWP-Eイクラ こと @se_inoです。こぼしイクラとか、お米を覆うほどたっぷりのイクラ丼は邪道です。塩漬けの魚卵と白米との程よいマリアージュこそが正義なのです。よく覚えておいてくださいね。 さて、本日はフロントエンドエンジニア・マークアッパ向けに、Gruntの導入手引について書きたいと思います。 あなたがGruntに手を出さない理由 もしあなたがまだGruntを使っていない場合、今のやりかたで別に困ってないからではないでしょうか? 確かに、困ってはいないのかもしれません。 だがしかし、本当にその方法はベストなのかということを一度考えてみましょう。 なお、この記事はQiitaに投稿されている Grunt - Getting Started の記事を参考にさせていただいています。 作業効率化してますか? 言い換えれば、無駄な手作業をしていませんか?例えば、 JSとか
先日書いた「Web StorageやindexedDBを扱う上でのセキュリティ上の注意点」の続き。 sessionStorage を使うと解決するか この用途なら sessionStorage でよい (はてなブックマーク - ssig33 - 2013年3月9日)sessionStorageはウィンドウあるいはタブが開かれてから閉じるまでの間をひとつのセッションとして管理し、そのセッションの期間中だけデータを保持します。ウィンドウやタブを閉じる際にはセッションは終了し、ストレージ上のデータは破棄されます。通常のWebアプリケーションでは、ログイン/ログアウト間というアプリケーション側が想定しているセッションと、sessionStorageのいうところのセッションとは異なる概念であり、ウィンドウを閉じる前に異なるユーザでログイン/ログアウトを繰り返した場合には同種の問題が発生する可能性があ
HTML5のLocalStorageとは、ブラウザ内に永続的にデータを保存する事が出来る技術です。 この技術はCookie以外の方法でブラウザ内のデータ永続化出来る点で、大変便利なものですが、 保存するデータは暗号化されません。 そのため、ブラウザのデベロッパコンソールなどで簡単に保存したデータを参照する事が可能です。 今回は、LocalStorageで保存するデータをクライアントで暗号化してみる方法をやってみました。 データ保存時に暗号化する 暗号化方式は色々ありますが、今回は比較的簡単なDESの方式を用いました。 まずは、暗号化する為の秘密鍵をユーザーに入力してもらいます。 そしてその秘密鍵を元に、LocalStorageでデータ保存を行う際に、暗号化を行います。 (データを暗号化した例) http://www.yoheim.net/labo/html5/localstorage/st
連載目次 ■Web Storageの概要と活用例 旧来(=HTML 4.1以前)のWebブラウザでは、eコマース・サイトのカート情報やログイン状態の管理情報などのデータをブラウザに保存する仕組みとして、大半のWebサイトではクッキーを利用していた。しかし、クッキーでは、保存容量が4KBytesまでであることや、すべてのリクエストに対してサーバにデータを自動で送信するため、容量制限やセキュリティ対策に悩まされることも多くあった。 HTML5では、クッキーに代わるデータ保存の仕組みとして、「Web Storage」と呼ばれる機能を利用できる。Web Storageは、ブラウザ側でKey-Value型でデータを保存する機能のことで、現在のインターネットを取り囲む環境に対応した「クッキーの後継技術」ともいえる。 Web Storageとクッキーの機能の差異は、以下の表のとおりだ。
FCKEditorと言えば、Webベースで使えるWYSIWYGエディタとして有名なソフトウェアだ。しかし既に多数の機能が実装され、コアに手を入れて改造しようとはとても思えない代物になっている。 次期FCKEditor また、多機能ゆえに動作が重たいのが難点だった。そうした問題点を解決できそうなのが次期FCKEditorだ。 今回紹介するオープンソース・ソフトウェアはCKEditor、FCKEditor3.0以降のソフトウェアだ。 FCKEditorは3.0以降から名前が変わり、CKEditorとなる。それに伴って様々な機能拡張がなされている。大きな点として、スキン機能とともに枠の色替え機能が実装されたことだ。なお対応ブラウザはFirefox2以上、IE6以上、Opera9.5以上、Safari3以上となる。 APIによる独自拡張 Ajaxとの親和性も高まっており、ダブルクリックで編集モード
UTF8/16 | URL Encode / Decode 文字列の URL エンコード、デコードもできる UTF8/16 変換ライブラリ IE4+, NN4.06+, Opera6 説明 JavaScript で何かしらのビット演算、文字列の符号化、復号化するとき 日本語等のマルチバイト文字をサクサク扱えるようにできるライブラリです。 拙作の Base64encode/decode、 blowfish、 arcfour等でも利用されています。 ついでに URL エンコード / デコード も行なえます。 機能 文字列を UTF8/16 の文字コードへ UTF8/16 の文字コードから文字列へ UTF16 <=> UTF8 (文字コードの変換) URL 文字列のエンコード、デコード DownLoad Download [utf.js] URL Encode/Decode Sample 変換し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く