Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 19.12.2009, 19:30
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

нет, спасибо, не надо
я устал от тебя
хотя, можешь выложить, может кто-то более терпеливый, или с новыми силами поможет тебе
Ответить с цитированием
  #22 (permalink)  
Старый 19.12.2009, 20:51
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

ты эт, не злись)))
Ответить с цитированием
  #23 (permalink)  
Старый 22.12.2009, 00:02
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Сэр, вы там тонкий клиент собрались делать? Или отслеживалку движения курсора в документе?

<irony>
Кстати, кайфовое предложение для всех верстальщиков: генерировать на сервере PNG и отдавать его клиенту прям куском. А потом при каждом движении мышью запрашивать новый, и с :hover париться не придется, о как!
</irony>
Ответить с цитированием
  #24 (permalink)  
Старый 22.12.2009, 20:30
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

там надо при нажатии на клавишу менять картинку (анимацию gif)....запросы на сервак каждых 100 милисекунд происходят .... соответственно аним не успевает проигрыватся до конца
Ответить с цитированием
  #25 (permalink)  
Старый 22.12.2009, 21:25
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Простите, помимо обработки анимации Ваш скрипт должен 10 раз в секунду делать что-то полезное?
Ответить с цитированием
  #26 (permalink)  
Старый 24.12.2009, 01:06
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

вот весь js код
Он принемает с сервера и отправляет данные на сервер

var xmlHttp = createXmlHttpRequestObject(); 

function createXmlHttpRequestObject() {	
  var xmlHttp;
  if(window.ActiveXObject){
    try{
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch (e){
      xmlHttp = false;
    }
  }else{
    try {
      xmlHttp = new XMLHttpRequest();
    }catch (e){
      xmlHttp = false;
    }
  }
  if (!xmlHttp){
    alert("error.");
  }else{
    return xmlHttp;
  }
};

function process(){
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0){
pid = encodeURIComponent(document.getElementById("pid").value);
xmlHttp.open("GET", "konekt.php?pid=" + pid + key + "&psrc=" + psrc, true);  
xmlHttp.send(null);
xmlHttp.onreadystatechange = readData;
  }else{
    setTimeout('process()', 100);
  }
}

function readData() {
 if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
  xmlResponse = xmlHttp.responseXML;
  xmlRoot = xmlResponse.documentElement;  
  var one = xmlRoot.getElementsByTagName("one")[0].firstChild.data;
  var tolok = xmlRoot.getElementsByTagName("tolo")[0].firstChild.data;
    if(document.getElementById("one").innerHTML != one){
  document.getElementById("one").innerHTML = one;
  }
   document.getElementById("dop").innerHTML = tolok;
  }
}

document.onkeydown = function (event){
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
events = event || window.event;

if (events.keyCode == 87){
key = "&keyW=1";
psrc = "2.gif";
tolo = 1;

}

if (events.keyCode == 83){
key = "&keyS=1";
psrc = "1.gif";
tolo = 2;

}

if (events.keyCode == 65){
key = "&keyA=1";
psrc = "3.gif";
tolo = 3;

}

if (events.keyCode == 68){
key = "&keyD=1";
psrc = "4.gif";
tolo = 4;

}

}
}

document.onkeyup = function (event){
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
events = event || window.event;

if (events.keyCode == 87 && tolo == 1){
key = "&keyW=0";
psrc = "0.gif";

}

if (events.keyCode == 83 && tolo == 2){
key = "&keyS=0";
psrc = "0.gif";

}

if (events.keyCode == 65 && tolo == 3){
key = "&keyA=0";
psrc = "0.gif";

}

if (events.keyCode == 68 && tolo == 4){
key = "&keyD=0";
psrc = "0.gif";

}

}
}

setInterval('process()', 100);
Ответить с цитированием
  #27 (permalink)  
Старый 25.12.2009, 16:20
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

мм. раз попросил помочь, то скажу сразу.
тебе надо немного почитать как работает XMLHTTPRequest

второе.

удалить походу тут надо
else{
    setTimeout('process()', 100);
  }


зачем вы постоянно проверяете статус каждые 100мс, если Вы даже не передаете изменения при нажати клавиш и отпускании? ведь пока запрос не закончится новые данные вы все равно не передадите как часто вы бы не проверяли. + у Вас стоит setInterval зачем еще задавать setTimeout ?

на счет останавливания картинки... с XHR недолжно быть если Вы пользуетесь только им а нигде например iframe или еще чето..
а стоп. картинка случаем не в innerHTML one|dop ?

Последний раз редактировалось PeaceCoder, 25.12.2009 в 16:26.
Ответить с цитированием
  #28 (permalink)  
Старый 25.12.2009, 19:13
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

ну я при нажатии клавиши переменка меняется а потом отправляется через function process()...а картинка в one...это то что мы с Вами лепили в пхп)
Ответить с цитированием
  #29 (permalink)  
Старый 25.12.2009, 20:42
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Я думаю оно даже так будет тупить анимацию
var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject() {    
  var xmlHttp;
  if(window.ActiveXObject){
    try{
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch (e){
      xmlHttp = false;
    }
  }else{
    try {
      xmlHttp = new XMLHttpRequest();
    }catch (e){
      xmlHttp = false;
    }
  }
  if (!xmlHttp){
    alert("error.");
  }else{
    return xmlHttp;
  }
};
 
function process(){
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0){
xmlHttp.open("GET", "konekt.php", true);  
xmlHttp.send(null);
xmlHttp.onreadystatechange = readData;
  }
}
 
function readData() {
 if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
  xmlResponse = xmlHttp.responseXML;
  xmlRoot = xmlResponse.documentElement;  
  var one = xmlRoot.getElementsByTagName("one")[0].firstChild.data;
    if(document.getElementById("one").innerHTML != one){
  document.getElementById("one").innerHTML = one;
  }
 }
}

setInterval('process()', 100);
Ответить с цитированием
  #30 (permalink)  
Старый 25.12.2009, 22:50
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от Jekel
а картинка в one...это то что мы с Вами лепили в пхп)
именно. потому то ты и наблюдаешь эффект не доконца т.к. при document.getElementById("one").innerHTML = one;
обновляется все содержимое в том числе и твоя таже картинка начинает воспроизводится с начала. обойти этот эффект в твоем случае можно только анализируя каждый элемент в one и если он изменился с текущим каждым элементом document.getElementById("one").innerHTML тогда заменять его. здесь надо работать с потомками DOM
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Свойство opener обнуляется при обновлении страницы LesPaulFAP Events/DOM/Window 0 12.10.2009 13:09
Изменение шапки при обновлении страницы nasty blood (X)HTML/CSS 0 07.04.2008 13:13