отправка запроса на сервер
<html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <script> var mouseX = 0; var mouseY = 0; var m = new Array(); function getMouse(e){ mouseX = e.pageX; mouseY = e.pageY; if (mouseX < 0){mouseX = 0} if (mouseY < 0){mouseY = 0} m.push([mouseX, mouseY]); return true; } function clearAR(){ for(i=0;i<m.length;i++){ for(j=0;j<m[i].length;j++){ m[i][j]=[]; } } } </script> </head> <body> <script> $(document).ready(function(){ $(document).mousemove(getMouse); //label1 var timer = setInterval(function(){ $.post('server.php',m); clearAR(); $(document).mousemove(getMouse); },4000); }); </script> </body> </html> задача: нужно каждые 4 секунды отправлять на сервер координаты курсора. Если удалить label1 то програма работает только не учитывается первые 4 сек. |
Зачем так всё усложнять :)
var mouse = [0, 0]; $(function() { $(document).mousemove(function(e) { mouse[0] = e.pageX; mouse[1] = e.pageY; }); setInterval(function() { $.post('server.php', {x: mouse[0] < 0 ? 0 : mouse[0] , y: mouse[1] < 0 ? 0 : mouse[1]}); }, 4000); }); |
оно то верно только даные записываются первы 4 секунды, а потом отправляютса с тем же интервалом, а мне нужно копить даные 4 секунды, потом отправить, онулить массив, копить в течение 4 секунд и отправить новые даные...
|
все это в хидер сунь и будет тебе счастье
<script type="text/javascript"> var mouseX = 0; var mouseY = 0; var coordsX = []; var coordsY = []; var postDATA = {'coords' : []}; function getMouse(e){ mouseX = e.pageX; mouseY = e.pageY; if (mouseX < 0){mouseX = 0} if (mouseY < 0){mouseY = 0} // 1 способ /*coordsX.push(mouseX); coordsY.push(mouseY); postDATA = {x: coordsX, y: coordsY};*/ // 2 способ postDATA.coords.push( mouseX + ',' + mouseY ) return true; } function clearAR(){ coordsX = []; coordsY = []; postDATA.coords = []; } $(document).ready(function(){ $(document).mousemove(getMouse); //label1 var timer = setInterval(function(){ $.post('server.php',postDATA); clearAR(); $(document).mousemove(getMouse); },4000); }); </script> |
спасибо за ответы. Я уже с етим разобрался. Считаю тему можно закрывать.
|
var mouse = []; $(function() { $(document).mousemove(function(e) { mouse.pushState([e.pageX < 0 ? 0 : e.pageX, e.pageY < 0 ? 0 : e.pageY]); }); setInterval(function() { $.post('server.php', mouse); mouse = []; }, 4000); }); |
Часовой пояс GMT +3, время: 04:10. |