Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2009, 04:39
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

setInterval не работает и onkeypress
setInterval не фурычит! чего??
И onkeypress работает! Хотя если писать onkeydown или onkeyup то работает норм все!
document.onkeypress = setInterval(function keyIsDown(event) {
//***W***
event = event || window.event;
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
if (event.keyCode == 87) {
if (sText2 == 0){
xmlHttp.open("GET", "controls.php?keyW=1", true);  
xmlHttp.send(null);
document.kartinka.src = '2' + '.gif';
}
}
}
}
}, 1000);

Будьте любезны помочь.
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2009, 06:01
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

о боже мой!
это вообще ужас, и странно что он работает хоть в каком-то виде
вы пытаетесь в качестве обработчика события выставить результат выполнения setInterval(который не является ф-цией), и она выполняется один раз:при назначении обработчика
дальше лучше:
вы проверяете состоянии уже существующего объекта xmlHttp(интересно откуда он взялся и запустился до первого вызова ф-ции keyIsDown?), и в случае если он успешен, пытаетесь проверить объект события на предмет нажатой клавиши(интересно откуда при вызове keyIsDown в его объекте событие может взяться код нажатой клавиши? подумайте над этим внимательно), и проверяется неизвестная переменная(назначение которой в коде далеко не ясно)
------------------
в общем, искренне не понимаю как этот код может хоть какую-то видимость работы демонстрировать, и что вы вообще пытались им сделать
пожалуйста прочитайте внимательно цикл статей на сайте, чтобы упорядочнить ваши знания JS
сейчас у вас каша в голове,и ваш код мягко говоря кажется творчеством жителей желтого дома.
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2009, 14:24
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

ну полный код в предидущей теме)помогите пожалуйста оптимизировать код..
Вот код весь:
Это код html странички

<script language="JavaScript" type="text/javascript" src="saver.js"></script>
<html>
<head>
<title>123</title>
<meta http-equiv="Content-type:text/xml" charset="cp1251">
<script language="JavaScript" type="text/javascript" src="saver.js"></script>
</head>  
<body onLoad='sendData()'>
<center>
id: <input type="text" id="txtCustomerId" value="1">
<div id="txtCustomerInfo"></div>
</center>
</body>
</html>



Это saver.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("Не создает xml объект.");
  }else{
    return xmlHttp;
  }
};
 
//ПОСЫЛКА ЗАПРОСА ПО ID
 
function sendData(){
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0){
    name = encodeURIComponent(document.getElementById("txtCustomerId").value);
    xmlHttp.open("GET", "customers.php?id=" + name, true);  
    xmlHttp.onreadystatechange = readData;
    xmlHttp.send(null);
 
  }else{
    setTimeout('sendData()', 200);
  }
};
 
//ЧТЕНИЕ РЕЗУЛЬТАТА
 
function displayCustomerInfo(sText) {
   sElem = document.getElementById("txtCustomerInfo");
   sElem.innerHTML = sText;
  }
function readData() {
  if (xmlHttp.readyState == 4) {
    if (xmlHttp.status == 200) {
      xmlResponse = xmlHttp.responseXML;
      xmlDocumentElement = xmlResponse.documentElement;
      helloMessage = xmlDocumentElement.firstChild.data;
      displayCustomerInfo(xmlHttp.responseText);
      setTimeout('sendData()', 200);
 
    }else{
      alert("Не получен ответ сервера: " + xmlHttp.statusText);
    }
  }
};
 
//УПРАВЛЕНИЕ
 
document.onkeydown = function keyIsDown(event) {
//*W*
event = event || window.event;
    if (event.keyCode == 87) {
    xmlHttp.open("GET", "controls.php?keyW=1", true);  
    xmlHttp.onreadystatechange = readData;
    xmlHttp.send(null);
  }
};


ПХП управления controls.php

require_once "config.php";
 
$keysW = $_GET['keyW'];
 
$linkj = mysql_connect($host,$user,$pass);
@mysql_select_db($database);
 
$mybase = mysql_query("SELECT * FROM customers WHERE id='1'"); 
$dbcon = mysql_fetch_array($mybase);
$x = $dbcon['x'];
$y = $dbcon['y'];
 
if($keysW==1){
$suy = $y - 2;
mysql_query("UPDATE customers SET y='".$suy."' WHERE id='1'");
$keysW=0;
}


ПХП обмен данных с базой customers.php

header('Content-Type: text/xml; charset=windows-1251');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
echo '<response>';
 
require_once "config.php";
 
$sId = $_GET['id'];
 
$link = mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_query("SET NAMES windows-1251");
 
$query = mysql_real_escape_string("SELECT * FROM customers WHERE id=$sId"); 
 
@mysql_select_db($database) or ($info = mysql_error());
 
if($result = mysql_query($query) and mysql_num_rows($result) > 0) {
        $values = mysql_fetch_array($result,MYSQL_ASSOC);
        $x = $values['x'];
        $y = $values['y'];
        $info = '<img src="1.gif" alt="" id="player" style="position: absolute; left:'.$x.'; top:'.$y.'"></img>';
} else {
        $info = "Не найден id!";
}
 
echo $info;
 
echo '</response>';

Последний раз редактировалось Jekel, 08.12.2009 в 14:49.
Ответить с цитированием
  #4 (permalink)  
Старый 08.12.2009, 17:14
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Гвоздь помоги пожалуйста) поправь код
Ответить с цитированием
  #5 (permalink)  
Старый 08.12.2009, 18:51
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

честно говоря, предыдущую тему желания разбирать не было
потому что как правило такое количество кода, которое вы выложили, свидетельствует либо о том, что аффтор нифига не шарит JS, и:
1)либо не смог выделить существенную часть кода(извините, но разгребать постороннее говно кроме тематичного кода -- нету желания)
как правило это код -- чей-то копипаст
2)либо аффтор сам составил код, и он ужасен.и пропадает желание с ним работать
судя по всему ваш случай-второй
без денежного сопроваждения, у меня никакого желания с вашим кодом работать-нету, после того, что я увидел
так что изучайте основы, как я сказал, либо готовьте кошелек
Ответить с цитированием
  #6 (permalink)  
Старый 09.12.2009, 01:07
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

хм, печально...хорош форум) ну а денег сколько?
Ответить с цитированием
  #7 (permalink)  
Старый 09.12.2009, 03:09
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

setInterval('document.write("slovo")', 1000) ЧЕГО НЕ РАБОТАЕТ??? setInterval('alert("прошла секунда")', 1000) работает! а вывод в документ не работает!!! чего?
Ответить с цитированием
  #8 (permalink)  
Старый 09.12.2009, 08:18
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

document.write после загрузки страницы не работает так, как вы ожидаете (считайте, что вообще не работает).
Ответить с цитированием
  #9 (permalink)  
Старый 09.12.2009, 14:15
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

а как мне зделать так чтобы добавлялось слово на страничку каждую секунду ?? почему не работает...как этот же код сделать чтобы работал?
Ответить с цитированием
  #10 (permalink)  
Старый 09.12.2009, 14:15
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://innerhtml.ru/
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работает в Mozilla и не работает в IE Maxidrom Events/DOM/Window 4 27.02.2010 16:37
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11
Не работает eval в IE ..::Silence::.. Общие вопросы Javascript 8 25.03.2009 13:16
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32