我尝试创建一个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个人。有没有更好的方法来进行同步。 有没有办法只检测已更改的行并单独更新?因为文件大小会不断增加并且需要更长的时间。
所以我想知道:
svg.tmp
时,这会有效吗? 答案 0 :(得分:1)
1:是的,这是直到更多浏览器开始支持HTML5 WebSockets的唯一方法。只是不要那么多地对服务器进行轮询,大约每5秒应该是好的 2:不,不是真的 3:是的,它应该 希望有所帮助!