&color(red){みかんせい};

dhtmlxとnode.jsで複数クライアントで同期するwebアプリを作ってみた。
参照:[[http://docs.dhtmlx.com/dataprocessor__live_update.html>+http://docs.dhtmlx.com/dataprocessor__live_update.html]]
Grid、TreeGrid、Scheduler、DataViewの4つで利用可能です。

ここではGridを例にします。

***node.jsを用意 [#s5ec585f]

#code(nonumber){{
[root@c ~]# yum --enablerepo=epel install nodejs
}}

***gridLive_nodejs.zipのserver.js [#dc85ded9]
***&color(magenta){gridLive_nodejs.zip}; のserver.js [#dc85ded9]
この圧縮ファイルは下記のページに置かれている
[[http://docs.dhtmlx.com/dataprocessor__live_update.html>+http://docs.dhtmlx.com/dataprocessor__live_update.html]]
&ref(2016y05m09d_230347752.png,nolink);

これを取得して、展開します
#code(nonumber){{
[root@c src]# pwd
/opt/src
[root@c src]# ls -l gridLive_nodejs.zip
-rw-r--r-- 1 root root 40119  5月  9 22:31 gridLive_nodejs.zip

[root@c src]# unzip -d /opt/gridLive_nodejs gridLive_nodejs.zip
}}
まだ早いけど、この中のserver.jsを動かしておきます。

#code(nonumber){{
[root@c src]# cd /opt/gridLive_nodejs/
[root@c gridLive_nodejs]#
[root@c gridLive_nodejs]# node nodejs/server.js
Server running

}}
これをデーモン起動にすればいいのだが、、まだ方法が分からん。

***live_updates.js [#m0039ff9]
***&color(orangered){live_updates.js}; [#m0039ff9]
こちらは、Forumページにありました。
[[http://forum.dhtmlx.com/viewtopic.php?f=6&t=38711>+http://forum.dhtmlx.com/viewtopic.php?f=6&t=38711]]
&ref(2016y05m09d_230646999.png,nolink);

***dhtmlx本体 [#ocf32a55]
***&color(crimson){dhtmlx};本体 [#ocf32a55]
「Standard Edition v.4.6」をダウンロードします


***live_updatesサンプルページ [#o8fed5ee]
下準備はそろいました。
簡単なサイトを準備します。基本はdataProcessor APIを使って、Grid表の修正、追加、行削除がそのままDB側にも反映できる形にして、
それからnodejsによるlive_update.jsを組み込むっていう感じです。


ここでは /var/www/lv を基点にページを作ります。
まずは dhtmlx をここに展開します。
#code(nonumber){{
[root@c ~]# mkdir /var/www/lv  && cd /var/www/lv
[root@c lv]# unzip /opt/src/dhtmlxSuite_v46_std.zip  codebase/*
}}

#code(html,nooutline,nonumber){{
[root@c lv]# vi index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
        <title>For demo purpose only :: &1</title>

  <link rel="STYLESHEET" type="text/css" href="codebase/dhtmlx.css">
  <script src="codebase/dhtmlx.js"></script>
  <script src="codebase/live_updates.js" type="text/javascript" charset="utf-8"></script>

  <script type="text/javascript" src="http://localhost:8008/sync.js"></script>
<script>
	mygrid = new dhtmlXGridObject('gridbox');
	mygrid.setImagePath("codebase/imgs/");
	mygrid.setHeader("Column A, Column B");
	mygrid.setInitWidths("100,*");
	mygrid.setColTypes("edtxt,ed");
	mygrid.setColSorting("connector,connector");
	mygrid.enableMultiselect(true);
	mygrid.setSkin("dhx_skyblue");
	mygrid.init();
	mygrid.loadXML("php/get.php");
	var dp = new dataProcessor("php/update.php");
	dp.live_updates("http://localhost:8008/sync");
	dp.init(mygrid);
</script>
</head>
<body >
   <div id="gridbox" width="350px" height="550px" style="background-color:white;overflow:hidden"></div>
</body>
</html>
[root@c lv]#
}}
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS