Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   отправка запроса на сервер (https://javascript.ru/forum/misc/39768-otpravka-zaprosa-na-server.html)

remember_me 11.07.2013 11:54

отправка запроса на сервер
 
<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 сек.

ruslan_mart 11.07.2013 12:38

Зачем так всё усложнять :)

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);
});

remember_me 11.07.2013 13:27

оно то верно только даные записываются первы 4 секунды, а потом отправляютса с тем же интервалом, а мне нужно копить даные 4 секунды, потом отправить, онулить массив, копить в течение 4 секунд и отправить новые даные...

ОлегА 11.07.2013 15:38

все это в хидер сунь и будет тебе счастье
<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>

remember_me 11.07.2013 16:23

спасибо за ответы. Я уже с етим разобрался. Считаю тему можно закрывать.

ruslan_mart 11.07.2013 16:25

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.