|
|
Модератор форума: Dimitro, LightInDarkness |
Форум Web раздел Web форум Долго грузится сайт (Помогите переписать код онлайна) |
Долго грузится сайт |
Сайт долго грузится возможно из за кривого кода, и этот код на 2 реалма. Помогите переписать его под 1 реалм.
Собственно вот сам код : Code <? include('config/config.php'); $fp1 = @fsockopen ("$ip","8085",$errno,$errstr,1); if ($fp1) { mysql_connect("$dbip","$dblogin","$dbpass"); mysql_selectdb ("$dbc"); $online_tmp = mysql_query ("select count(guid) as kol from characters where online = 1"); $online_kol = mysql_fetch_array($online_tmp); $online1 = $online_kol['kol']; } else $online1 = 0; $fp2 = @fsockopen ("localhost","8086",$errno,$errstr,1); if ($fp2) { mysql_connect("$dbip","$dblogin","$dbpass"); mysql_selectdb ("$dbc2"); $online_tmp = mysql_query ("select count(guid) as kol from characters where online = 1"); $online_kol = mysql_fetch_array($online_tmp); $online2 = $online_kol['kol']; } else $online2 = 0; $online=$online1 + $online2; echo $online; ?> |
Ну вообще сайт на хостинге, а сервер дома. Может он слишком долго коннектится к базе получает все нужные данные и выводит их? Да и сами картинки грузятся быстро, как бы на сайт долго заходит. Статистика онлайна на каждой странице, вот я и решил что дело в ней.
Сообщение # 3 написано 04.09.2012 в 13:56
|
Code <? include('config/config.php'); $fp1 = @fsockopen ("$ip","8085",$errno,$errstr,0.1); if ($fp1) { mysql_connect("$dbip","$dblogin","$dbpass"); mysql_select_db ("$dbc"); $online = mysql_query ("select count(guid) as kol from characters where online = 1"); $online = mysql_fetch_array($online); $online = $online['kol']; } else {$online = 0;} echo $online; ?> Снова теже грабли ..не существует функции mysql_selectdb есть mysql_select_db |
Купи тачку в дц... Дело в канале, а не в нагрузке на сервер или же еще большая глупость "не существует функции mysql_selectdb", то что она старая не говорит о том, что её нет или она не работает. Как правило домашний провайдер скорость отдачи делает намного меньше скорости приема, к примеру имея канал в 10мб, скорость отдачи может быть до 3мб\с. А если скорость мала то и ответ на запрос идет дольше и чем больше подключения тем дольше будет грузиться твой сайт.
Из этого есть 3выхода. 1) Купите нормальную машину, с каналом минимум в 100мб\с. 2) Подкрутить ajax, который будет подгружать данный скрипт. Т.е сайт загрузился полностью, а скрипт выведет в блок тогда когда скрипт получить ответ и после, ajax подгрузит этот ответ. 3) Кешировать данные.
Дизайн\коддинг сайтов, контакты в профиле.
Мой не большой сайт для серверов WoW. avenger-web.ru - мой блог о веб дизаине и кодинге.
Сообщение # 8 написано 06.09.2012 в 11:41
|
Разумеется, это же вам не домашний пк. Чем быстрее ответ дойдет до сайта тем быстрее загрузиться сайт.
Добавлено (06.09.2012, 12:57)
Дизайн\коддинг сайтов, контакты в профиле.
Мой не большой сайт для серверов WoW. avenger-web.ru - мой блог о веб дизаине и кодинге.
Сообщение # 10 написано 06.09.2012 в 12:57
|
mr_aVeNgEr,
mysql_selectdb - deprecated стала ещё в 2007 году (уже как и весь mysql_*), mysql_selectdb псевдоним функци mysql_select_db ,что уже говорит о нежелательном его использовании помимо того что уже даже и весь mysql_* нежелателен...и используется только для обратной совместимости с старыми "пыхами". Quote Купи тачку в дц... Дело в канале Дело то может и в канале..но более чем уверен, что причина его загрузки ,в супер верстке от местных умельцев...где только background весит более метра...и скрипты написанные ими же ..что тормозит процесс загрузки страницы... Так что после нормальной оптимизации сайта и 3мб/с хватит с головой...я не думаю что у него на сайт заходит одновременно хотяб 10-30 людей...и то самое сложное для канала 1 загрузка...т.к браузер автоматически кеширует большенство ресурсов на ЖД пользователя и при следущей загрузке использует их уже с ЖД,т.е при дальнейшем серфинге по сайту для такого пользователся существенно будет снижен передаваемый трафик Quote (oxxylolz) по выключай програмы чтобы машину не грузили..т.к. больше памяти = быстрее загрузка! Это поможет только при перенагрузке ...а когда и так есть достаточно свободной памяти это тебе ничего толком не даст... |
Вариант кеширования безусловно спасает от подвисонов в fsockopen.
Code <? include('config/config.php'); $fp1 = @fsockopen ("$ip","8085",$errno,$errstr,1); if ($fp1) { mysql_connect("$dbip","$dblogin","$dbpass"); mysql_selectdb ("$dbc"); $online_tmp = mysql_query ("select count(guid) as kol from characters where online = 1"); $online_kol = mysql_fetch_array($online_tmp); $online1 = $online_kol['kol']; } else $online1 = 0; $fp2 = @fsockopen ("localhost","8086",$errno,$errstr,1); if ($fp2) { mysql_connect("$dbip","$dblogin","$dbpass"); mysql_selectdb ("$dbc2"); $online_tmp = mysql_query ("select count(guid) as kol from characters where online = 1"); $online_kol = mysql_fetch_array($online_tmp); $online2 = $online_kol['kol']; } else $online2 = 0; $online=$online1 + $online2; $fp = fopen('online.html', 'w'); fwrite($fp, $online); ?> итак, теперь при обращении к скрипту создаётся файл online.html, в котором результат. далее валим на хостинг, на котором ДОЛЖЕН быть Cron (планировщик заданий) забиваем в него строчку: Code * * * * * /адрес/до/скрипта.php и после этого хост-сервер сам будет раз в минуту обращаться к этому скрипту. в контентной части же 2 варианта html: Code <include="online.html"> или php: Code <? echo file_get_contents('online.html'); ?> вот.
Сообщение # 12 написано 23.09.2012 в 17:57
|
| |||
| |||