С помощью неких личностей написал такое...но работает не коректно, выдает не полный ответ...читает мало с базы( должно читать 121 строку, читает и выдает 35+-
$userdat = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE id='1'")); $count = 0; $arr_x = array(); $arr_y = array(); for ($y=$userdat["y"]-5; $y<=$userdat["y"]+5; $y++){ $arr_y[] = $y; for ($x=$userdat["x"]-5; $x<=$userdat["x"]+5; $x++){ $arr_x[] = $x; } } $resource = mysql_query("SELECT * FROM `map` WHERE `loc` = 0 AND `x` IN (" . join(',', $arr_x) . ") AND `y` IN (" . join(',', $arr_y) . ")"); while($data_map = mysql_fetch_assoc($resource)){ $session_name = "x" . $count; if (empty($data_map['img'])) continue; if ($_SESSION[$session_name] != $data_map['img']){ $_SESSION[$session_name] = $data_map["img"]; $map .= "<d" . $count . ">" . $_SESSION[$session_name] . "</d" . $count . ">"; }else{ if ($_SESSION[$session_name]){ $_SESSION[$session_name] = 0; $map .= "<d" . $count . ">" . $_SESSION[$session_name] . "</d" . $count .">"; } } $count++; } |
Цитата:
|
Цитата:
|
кстати!
это да. вам нужно либо сокеты использовать, либо уменьшить частоту запросов хотя и сокеты могу не сильно-то помочь |
Часто ли от клиента дожна идти какая-то информация? Часто ли будут меняться переданные данные?
Если данные меняются относительно редко (раз в несколько секунд), можно использовать COMET, чтобы не гнать клиенту одинаковые данные. Если достаточно часто, то можно устроить некое подобие event-source (IE с файрфоксом, насколько я знаю, event-source не умеют). А именно — в старых добрых традициях чата Бородина слать последовательно теги <script> в скрытый ифрейм. Тогда можно сэкономить время на SYN→ACK→SYN-ACK и передаче заголовков запроса и ответа. Другие предложения? Самому интересно. :) |
Часовой пояс GMT +3, время: 01:33. |