digital matter
このサイトをご覧のInternet Explorer 6 ユーザーの皆様へ
総閲覧者数中 10.72% (2010/07/18現在)

‘JavaScript’ カテゴリーのアーカイブ

実はFiddlerがすごすぎたので、機能まとめ紹介

今までFiddlerをただのセッションの中身を確認できるLocal Proxyとしてしか見ていなかったのですが
改めて良く調べると色々できることが多すぎると判明。感動したので便利な機能をまとめてみました。

先に簡単に説明しておくと、FiddlerはMicrosoftが無料で配布しているWeb Debugging Proxyです。

Windows環境にインストールして、ブラウザとサーバの間の通信を読んだり操作したりできます。

配布サイトはこちら。

Fiddler Web Debugger – A free web debugging tool

動作環境は「Windows 2000 / XP / 2003 / Vista with Microsoft .NET Framework v2.0 or later」

今回使ったバージョンは、2009年9月10日時点で最新の安定版、2.2.4.6。

とりあえず簡単に目次。

  • セッションのリクエスト一覧を確認する
  • やり取りしているヘッダ情報を見る
  • リクエスト・レスポンスの実際のデータの中身を確認する
  • セッション一覧表示をフィルタリングして、特定のContent-Typeだけ表示するようにする
  • リクエストを自分で作る
  • AutoResponderで特定のURLに対して、ローカルのファイルを割り当てる
  • Fiddler起動時にProxyを自動的に切り替える
  • Webページに対する一連の自動テストを実行する
  • サンドボックス
  • JScript.NETで拡張できる
  • C#やVB.NETで拡張できる
  • UIに好きな項目を追加できる
  • ブレークポイントの設定

マークアップエンジニアにおすすめしたいのは

  • セッション一覧表示をフィルタリングして、特定のContent-Typeだけ表示するようにする
  • AutoResponderで特定のURLに対して、ローカルのファイルを割り当てる

あたり。

プログラマには全部おすすめ。

詳細は「続き」からどうぞ。

(続きを読む…)

qooxdoo 0.7.3リリース

qooxdoo » News » qooxdoo 0.7.3 released
http://news.qooxdoo.org/qooxdoo-073-released

2か月ほど音沙汰なかったからちょっと心配になってた。

qooxdooのエラーログウィンドウの制御

  <body>
    <script type="text/javascript">
      if (!qx.IS_SOURCE) {
        qx.log.Logger.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_ERROR);
      }
      qx.core.Init.getInstance().setApplication(test.Application);
    </script>
  </body>

index.htmlをこんな感じにしておくと、ビルド後はERROR以上のメッセージしかログウィンドウに表示しない。
開発中は普通にデバッグ情報も出せるので便利。

ちなみに他のログレベルは以下の通り。(qooxdoo 0.6.6の場合)

すべてのログを表示する
LEVEL_ALL

アプリケーションをデバッグするのに役立つきめ細かい情報を表示する
LEVEL_DEBUG

荒いレベルのアプリケーションの動作の進捗を示すメッセージを表示する
LEVEL_INFO

潜在的な問題を警告として表示する
LEVEL_WARN

アプリケーションが実行し続けられるかどうかというレベルのエラーを表示する
LEVEL_ERROR

おそらくアプリケーションの動作が中止するレベルのエラーを表示する
LEVEL_FATAL

すべてのロギングをオフにする
LEVEL_OFF

qooxdoo 0.7-beta1とSafari

とりあえずAtomのサンプルページからすでに表示できなかった件。

0.6.6では表示できてたので、Stable待ちか。

※追記
一晩寝てSafariのバージョン見たら、1.3.2だったことが判明。
2.0.4は試してない。

Qooxdoo 0.6.6リリースと、0.7-alpha1

また新バージョン出ました。

今回の変更点は、バグフィックスとメモリリークの解消、IE7に関する問題の修正がメインのようです。

あと、Quickstartというビルド不要のシンプルなアプリケーションが追加されました。

quickstart/Application.js
このファイルを編集して開発することによって、ビルドの手間とかが省けるというもの。
まぁ、最適化がなされない分、ファイルそのものは大きくなりますけど。

Fixed tooltip support qx.ui.embed.GalleryList and qx.ui.embed.Gallery

GalleryListでtooltip試してみましたが、動かないような…?
まぁ、どちらにしろGalleryList全体でひとつのtooltipを出すような形になってしまうので、まだちょっと使えないかなぁ…

The only major API change in this release: qx.Class has been renamed to qx.Clazz to avoid a future name clash with 0.7.

あと、qx.Classをqx.Clazzにリネームする必要があるようなので注意。
今作ってたものは何も変更なしで動いたので良し。

qx.ui.embed.GalleryListの選択時にアイテムのインデックスを取得する

…方法は、ちょっと簡単にはいかない感じ…

GalleryListが、qx.ui.basic.Terminatorの派生クラスで、アイテム自体はdiv要素を並べているだけなのでインデックスとか取れないようだ。

とりあえず試行錯誤の記録。最終的には、numberプロパティとして設定した#01とかの文字をDOM要素から抜き出して判断するという、微妙な対応に。

var galleryList = new qx.ui.embed.GalleryList(galleryData);
galleryList.getManager().addEventListener("changeSelection", function(e) {
  alert(e.getData()); // DIV
  alert(e.getTarget()); // DomSelectionManager
  alert(e.getTarget().getItemHashCode( e.getTarget().getSelectedItem() )); // 550
  alert(e.getTarget().getSelectedItem().firstChild); // DIV
  alert(e.getTarget().getSelectedItem().firstChild.innerHTML); // #01
  alert(e.getTarget().getSelectedItem().childNodes[0].firstChild.nodeValue); // #01
  var num = Number( e.getTarget().getSelectedItem().childNodes[0].firstChild.nodeValue.match(/#0?([0-9]+)/i)[1] );
  …
});

うーむ、使いにくい。
VerticalLayoutに自分でオブジェクト突っ込んでいった方が楽かも…

マネージャにqx.manager.selection.DomSelectionManagerクラスが指定されているので、getItems()でdivリスト取得して、上から順にisEqual(var vItem1, var vItem2)とかした方が確実だとは思う。
遅いと思うけど。

ちなみに、リストの並べ替えもGalleryListでやろうとして地獄を見た。

qx.ui.embed.GalleryListのセルの高さ

var galleryList = new qx.ui.embed.GalleryList(galleryData);

galleryList.setThumbMaxHeight(120);

で調整可能。

qooxdoo_gallerylist00.png

qooxdoo_gallerylist01.png

prototype.jsのAjax.requestで&_=が付加される件

JSON文字列をキーなしで送りたいのに、POSTしたデータに_=とか余分なデータが付いてしまうので、サーバサイドが正しくJSONをパースできない現象があった。

var testAjax = new Ajax.Request(
    url,
    {
        method: 'post',
        parameters: jsonstr,
        asynchronous: true,
        onComplete: showResponse
});

prototype.jsのソースを見ると一目瞭然で、わざわざ付加している模様。

1.4.0

var parameters = this.options.parameters || '';
if (parameters.length > 0) parameters += '&_=';

1.5.0

params = Hash.toQueryString(params);
if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_='

なるほど?Safariとかで必要なワケか。

とりあえず、QooxdooのRPCクラスと互換性のあるものをprototype.jsで、デバッグのために使いたかっただけなので、さっくり該当行削除して終了。
このパラメータがないとSafariではどうなるんだろう…自分で調べてみたりする気は全然起きないのですが。

qx.renderer.border.BorderPresets

毎回忘れるのでQooxdooのBorderのプリセットをメモしておく。
APIマニュアルにも載ってないので。
frontend/framework/source/class/qx/renderer/border/BorderPresets.jsのコードをもとに整形しただけ。

black

width: 1px
style: "solid"
color: "black"

white

width: 1px
style: "solid"
color: "white"

none

width: 0px
style: "none"

inset

width: 2px
style: "inset"

outset

width: 2px
style: "outset"

groove

width: 2px
style: "groove"

ridge

width: 2px
style: "ridge"

thinInset

width: 1px
style: "inset"

thinOutset

width: 1px
style: "outset"

verticalDivider

width: 1px
left-width: 0px
right-width: 0px
style: "inset"

horizontalDivider

width: 1px
top-width: 0px
bottom-width: 0px
style: "inset"

shadow

width: 1px
style: "solid"
color: "threedshadow"

lightShadow

width: 1px
style: "solid"
color: "threedlightshadow"

info

width: 1px
style: "solid"
color: "infotext"

Delphi for PHP

かつてBorland派だった身としては期待したい一品。
まぁBorland派と言ってもTurboC/TurboC++/C++Builderを愛用していただけでDelphi使いではなかったけど。

しかも

VCL for PHP はオープンソースライブラリとして公開されているもので、 Qooxdoo、Adodb、DynAPI、Smarty、Xajax、JSCalenda などのオープンソース PHP スクリプトやライブラリをベースとしており、コンポーネントアーキテクチャは100% PHP 5 で記述されている。

大好きなQooxdooまで。
買うしか。

ところでVCL for PHPのプロジェクトページって何もないのね。
ってか、まだ登録されたばっかり(Registered : 2007-02-16 02:05)か。