タッチディバイスの場合、GoogleMapAPIで地図を表示している部分では、MouseEventのclickではイベントをキャッチしてもらえないようだったので、専用にタッチイベントを起こしてみた。
TouchEventはDOMでは規定されていないので、プラットフォーム別に初期化の仕方が違うみたいなので、とりあえず手持ちで確認できたAndroidとiOSむけだけ。
PC向けのブラウザでは動かない。
イベントとしては
touchstart
touchmove
touchend
の3つがあるみたい。
タッチディバイスによっては、マルチタッチをサポートしているものがあるので、タッチイベントは配列で指定することになる。
GoogleMapAPIで地図のクリックイベントとして登録した処理は、はtouchstartだけでは実行してくれなかったので、touchstartの後にすぐにtouchendを発行してみたらちゃんと処理された。
-------ここから-------
var evt=document.createEvent('TouchEvent');
var event2=document.createEvent('TouchEvent');
var touch = document.createTouch(window,elements, 0, x, y, x, y);
var touches = document.createTouchList(touch);
[Androidの場合]
evt.initTouchEvent(touches, touches, touches, 'touchstart', window, x,y, x, y, false, false, false, false);
event2.initTouchEvent(touches, touches, touches, 'touchend', window, x,y, x, y, false, false, false, false);
[iOSの場合]
evt.initTouchEvent('touchstart', true, true, window, 0, x,y,x, y, false, false, false, false, touches, touches, touches,1, 0);
event2.initTouchEvent('touchend', true, true, window, 0, x,y,x, y, false, false, false, false, touches, touches, touches,1, 0);
elements.dispatchEvent( evt );
elements.dispatchEvent( event2 );
-------ここまで-------
2013年2月27日水曜日
2013年2月24日日曜日
DOMに対してい任意イベントを発生させる
DOM内の要素に対してイベントを任意に発生させることができることが分かったので、とりあえずメモ。
このあたりが参考になる。
createEvent()を使って、イベントをオブジェクトを作り、必要なパラメータを設定する。
createEvent()の引数はイベントの修理
以下は、Mouseでのクリックイベントを発生発生させているところ。
var evt = document.createEvent( "MouseEvents" );
evt.initMouseEvent("click", true, true, window, 0, 0,0, 250, 250, false, false, false, false, 0, null);
dispacthEvent()を使って他のDOM要素に対してイベントを割り振ることができる。
スマートフォンやタブレットの場合だと、clickイベントだとうまく動かない。
Touch系のイベントを指定しなくちゃいけないんだけど、DomLevel2では規定されいなので、どうするか・・・。
あとで調べる予定。
このあたりが参考になる。
createEvent()を使って、イベントをオブジェクトを作り、必要なパラメータを設定する。
createEvent()の引数はイベントの修理
以下は、Mouseでのクリックイベントを発生発生させているところ。
var evt = document.createEvent( "MouseEvents" );
evt.initMouseEvent("click", true, true, window, 0, 0,0, 250, 250, false, false, false, false, 0, null);
dispacthEvent()を使って他のDOM要素に対してイベントを割り振ることができる。
スマートフォンやタブレットの場合だと、clickイベントだとうまく動かない。
Touch系のイベントを指定しなくちゃいけないんだけど、DomLevel2では規定されいなので、どうするか・・・。
あとで調べる予定。
HTML上任意座標のdomエレメントを取得する
elementFromPoint()を使うと任意座標上に表示されている、要素を取得できることがわかったので、とりあえずメモ
el=document.elementFromPoint( x , y );
末端のDOM要素が取得できるみたい。
el=document.elementFromPoint( x , y );
末端のDOM要素が取得できるみたい。
2013年2月13日水曜日
Ext.grid.Panelで縦スクロールを制御
Ext.grid.Panelで縦スクロールを制御のした方を調べたので、とりあえずメモ。
方法としては2つ あるみたい。
a) Ext.core.ElementのscrollIntoView()を利用
方法としては2つ あるみたい。
a) Ext.core.ElementのscrollIntoView()を利用
Ext.Element(grid.getView().getNode(インデックス)).scrollIntoView();
b)Ext.grid.ViewのfocusRow()を利用
grid.getView().focusRow(インデックス);
b)の方は、すでに画面のどこかに表示している場合は、とくに変化がないので、任意行をGridの一番上に持ってきたい場合は、一度最終行を表示させた後で、表示したい行を指定するといいかも。
Gridの初期表示時に任意行を先頭に表示させる場合は、gridパネルのlistenersのイベントを登録して、その中で、上記の指定をすればよさそう。
色々と試したけど、afterlayoutイベントではうまく行った。
ただgridパネルを最初に表示させる際に、2度afterlayoutイベントがコールされてる動きをしていたので、工夫が必要かも。
a)で処理させようとすると、動作上は動いているように見えるけど、なぜか2回目のところで、エラーになってしまう。
2013年1月5日土曜日
Zend_DbでのDB接続管理
PDOドライバを使う場合、
PDO::ATTR_PERSISTENT=>true
を設定することで、DBコネクションがキャッシュされて、再利用ができる
http://php.net/manual/ja/pdo.connections.php
Zend_Dbを使う場合には、username,passwordと同じレベルで、persistentにtrueを指定することで、同様に設定になる。
Zend Frameworkでconifig.iniに以下のように指定すると、利用できるようになる
----ここから----
resources.db.params.username=DB接続ユーザ名
resources.db.params.password=DB接続パスワード
resources.db.params.persistent=true
----ここまで----
http://framework.zend.com/manual/1.12/ja/zend.db.adapter.html
に書いてあったけど、ページの最後のほうにnoteで書いてあったから見過ごしてた。
MySQLでコネクション数をみるとpersistent=trueとすることで、いくつかのコネクションが張られっぱなしになることを確認。
ただ、PDO側でコネクション数上限を指定するところが見当たらないので、DB側のMAX分だけコネクションが張られっぱなしになる可能性もあるかも。
だれか教えてほしい。
PDO::ATTR_PERSISTENT=>true
を設定することで、DBコネクションがキャッシュされて、再利用ができる
http://php.net/manual/ja/pdo.connections.php
Zend_Dbを使う場合には、username,passwordと同じレベルで、persistentにtrueを指定することで、同様に設定になる。
Zend Frameworkでconifig.iniに以下のように指定すると、利用できるようになる
----ここから----
resources.db.params.username=DB接続ユーザ名
resources.db.params.password=DB接続パスワード
resources.db.params.persistent=true
----ここまで----
http://framework.zend.com/manual/1.12/ja/zend.db.adapter.html
に書いてあったけど、ページの最後のほうにnoteで書いてあったから見過ごしてた。
MySQLでコネクション数をみるとpersistent=trueとすることで、いくつかのコネクションが張られっぱなしになることを確認。
ただ、PDO側でコネクション数上限を指定するところが見当たらないので、DB側のMAX分だけコネクションが張られっぱなしになる可能性もあるかも。
だれか教えてほしい。
2012年12月22日土曜日
MongoDBをUbuntuServer12.04へインストール
MongoDBをUbuntuServer12.04へインストールしてみたので、なんとくなくメモ。
10genのリポジトリを追加すると、apt-getコマンドでインストールできるので簡単。
1)PGP鍵のインストール
$sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
2) 10genリポジトリの作成
$sudo vim /etc/apt/sources.list.d/10gen.list
-----内容-----
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
----ここまで--
3) aptのアップデート
$sudo apt-get update
4) MongoDBのインストール
$sudo apt-get install mongodb-10gen
5) 一応確認
$mongo --version
10genのリポジトリを追加すると、apt-getコマンドでインストールできるので簡単。
1)PGP鍵のインストール
$sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
2) 10genリポジトリの作成
$sudo vim /etc/apt/sources.list.d/10gen.list
-----内容-----
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
----ここまで--
3) aptのアップデート
$sudo apt-get update
4) MongoDBのインストール
$sudo apt-get install mongodb-10gen
5) 一応確認
$mongo --version
UbuntuServer 12.04 固定IPアドレス化
Ubuntu Server12.04をインストールしたら、DHCPでIPアドレスを取得するようになっていた。
固定IPアドレスに変更してみたので、なんとくなくメモ
/etc/network/interfacesでDHCPの部分をコメントアウトし、必要な情報を設定する。
1) 設定を変更
$sudo vi /etc/network/interfaces
----------192.168.1.100に設定する例----------------
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
--------------------------ここまで---------------
2) eth0の再起動
$sudo ifdown eth0
$sudo ifup eht0
固定IPアドレスに変更してみたので、なんとくなくメモ
/etc/network/interfacesでDHCPの部分をコメントアウトし、必要な情報を設定する。
1) 設定を変更
$sudo vi /etc/network/interfaces
----------192.168.1.100に設定する例----------------
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
--------------------------ここまで---------------
2) eth0の再起動
$sudo ifdown eth0
$sudo ifup eht0
登録:
投稿 (Atom)