与Jquery&分享文本PHP

时间:2011-08-11 06:52:30

标签: php javascript jquery html5-canvas

我尝试创建一个html5白板。在白板中,内容是svgformat(就像文本一样),使用svgcanavas js库。我正在更新所有其他加入会话的白板内容,如下所示

function change() {
var svg = $('#svgcanvas').html();
//$('body').html(hi);
$.post("php/update.php", { svg: svg } );

}

setInterval("change()",100);

Php就像这样

<?php 
$svg = $_POST['svg'];
$myFile = "svg.tmp";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $svg;
fwrite($fh, $stringData);
fclose($fh);
?>

客户端js

function get() {
$.get('php/get.php', function(data) {
  $('#svgcanvas').html(data);

});

}

setInterval("get()",100);

和php

<?php 
$file = "svg.tmp";
$fh = fopen($file, 'r');
$theData = fread($fh, filesize($file));
echo $theData;
fclose($fh);
?>

使用此白板一次最多只能有20个人。有没有更好的方法来进行同步。 有没有办法只检测已更改的行并单独更新?因为文件大小会不断增加并且需要更长的时间。

所以我想知道:

  1. 这是我能做到的最佳方式吗?
  2. 有没有办法只检测到 在svg中改变了行并单独更新?
  3. 当有20个人访问同一个文件svg.tmp时,这会有效吗?

1 个答案:

答案 0 :(得分:1)

1:是的,这是直到更多浏览器开始支持HTML5 WebSockets的唯一方法。只是不要那么多地对服务器进行轮询,大约每5秒应该是好的 2:不,不是真的 3:是的,它应该 希望有所帮助!