「Web AI」は、クロノス・クラウンの柳井政和が開発しているJavaScirptのライブラリです。
「Web AI」には、URLのクエリーを手軽に書き換えたり、文字列を圧縮したりする機能があります。この機能を使えば、URLのクエリーを圧縮して短くして、ページ読み込み時にそのデータを解凍したりができます。
それでは以下、「Web AI」のクエリーの操作と圧縮・解凍のサンプルを掲載します。
まずは、実例です。
文字列1(srcStr1=):以下、少し補足です。
クエリーからの文字列の取得には「get」と「getRaw」の2種類があります。
「get」はhtmlタグが自動でエスケープされるので、タグが入っている場合は文字列長が変わります。「getRaw」はhtmlタグをエスケープしないので文字列長は変わりません。
以下、ソースコードです。
// Googleからスクリプトをロード google.load("search", "1"); google.load("feeds", "1"); google.load("jquery", "1.4.3"); // 初期化 google.setOnLoadCallback(function () { prettyPrint(); // ソースの装飾(*説明装飾用) }); /** * @title 【テスト】 * @description * * テストを行う。 */ function test() { // 変数の初期化 var $WA = crocro.webAi; // 短縮表記 var cQ = new $WA.Query(); // クエリー // 元文字列の長さを求める var srcStr1 = $("#srcStr1").val(); var srcStr2 = $("#srcStr2").val(); $("#srcHanLen").html(getHanLen(srcStr1 + srcStr2)); $("#srcLen").html(getBytLen(srcStr1 + srcStr2)); // URLの作成 cQ.prsFrmUrl({url: "http://www.google.com/"}); //cQ.prsFrmLocation(); // 現在のURLをパースさせる場合 cQ.set("srcStr1", srcStr1); cQ.set("srcStr2", srcStr2); // 通常URL var urlNrml = cQ.getUrl(); $("#urlNrml").val(urlNrml); $("#urlNrmlLen").html(urlNrml.length); // 圧縮URL var urlCmprs = cQ.getCmprsUrl(); $("#urlCmprs").val(urlCmprs); $("#urlCmprsLen").html(urlCmprs.length); // 圧縮URLの復元 var cQR = new $WA.Query(); // クエリー cQR.prsFrmUrl({url: urlCmprs}); var strDcmprs1 = cQR.get("srcStr1"); var strDcmprs2 = cQR.get("srcStr2"); $("#urlDcmprs1").val(strDcmprs1); $("#urlDcmprs2").val(strDcmprs2); $("#urlDcmprsLen").html(getHanLen(strDcmprs1 + strDcmprs2)); } /** * @title 【半角長取得】 * @description * * 文字列の半角での長さを取得。 */ function getHanLen(s) { var resN = 0; for (var i = 0; i < s.length; i ++) { resN += (encodeURIComponent(s.charAt(i)).length > 3) ? 2 : 1; } return resN; } /** * @title 【バイト長取得】 * @description * * ユニコード文字列のバイトの長さを取得。 */ function getBytLen(s) { var resN = 0; for (var i = 0; i < s.length; i ++) { var enc = encodeURIComponent(s.charAt(i)); resN += (enc.length > 3) ? enc.length / 3 : 1; } return resN; }