• Страница 1 из 1
  • 1
Модератор форума: Dimitro, LightInDarkness  
Долго грузится сайт
soldat919
Скаут
Сайт долго грузится возможно из за кривого кода, и этот код на 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;             
?>
Сообщение # 1 отредактировано soldat919 - Вторник, 04.09.2012, 13:53
DnSS
PS Master VIP
soldat919, ты уверен,что именно в скриптах дело? Могут быть бока из-за веса изображений.
Я не обижаюсь на людей,просто меняю о них мнение. Можно вытащить человека из грязи, но нельзя вытащить грязь из человека...
Сообщение # 2 написано 04.09.2012 в 13:53
soldat919
Скаут
Ну вообще сайт на хостинге, а сервер дома. Может он слишком долго коннектится к базе получает все нужные данные и выводит их? Да и сами картинки грузятся быстро, как бы на сайт долго заходит. Статистика онлайна на каждой странице, вот я и решил что дело в ней.
Сообщение # 3 написано 04.09.2012 в 13:56
DnSS
PS Master VIP
Правильно решил...надеюсь помогут)
Я не обижаюсь на людей,просто меняю о них мнение. Можно вытащить человека из грязи, но нельзя вытащить грязь из человека...
Сообщение # 4 написано 04.09.2012 в 13:57
Xamejiuoh
Центурион
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
Сообщение # 5 отредактировано Xamejiuoh - Вторник, 04.09.2012, 17:50
soldat919
Скаут
Спасибо
Сообщение # 6 написано 04.09.2012 в 18:22
oxxylolz
Капрал
по выключай програмы чтобы машину не грузили..т.к. больше памяти = быстрее загрузка!
http://kaplun.ru/cs_go/18871
Сообщение # 7 написано 06.09.2012 в 10:22
mr_aVeNgEr
Сержант
Купи тачку в дц... Дело в канале, а не в нагрузке на сервер или же еще большая глупость "не существует функции mysql_selectdb", то что она старая не говорит о том, что её нет или она не работает. Как правило домашний провайдер скорость отдачи делает намного меньше скорости приема, к примеру имея канал в 10мб, скорость отдачи может быть до 3мб\с. А если скорость мала то и ответ на запрос идет дольше и чем больше подключения тем дольше будет грузиться твой сайт.
Из этого есть 3выхода.
1) Купите нормальную машину, с каналом минимум в 100мб\с.
2) Подкрутить ajax, который будет подгружать данный скрипт. Т.е сайт загрузился полностью, а скрипт выведет в блок тогда когда скрипт получить ответ и после, ajax подгрузит этот ответ.
3) Кешировать данные.
Дизайн\коддинг сайтов, контакты в профиле.
Мой не большой сайт для серверов WoW.
avenger-web.ru - мой блог о веб дизаине и кодинге.
Сообщение # 8 написано 06.09.2012 в 11:41
soldat919
Скаут
mr_aVeNgEr, одно дело купить, другое дело поставить)

Добавлено (06.09.2012, 12:39)
---------------------------------------------
т.е если я буду арендовать машину то сайт будет грузиться намного быстрее?

Сообщение # 9 написано 06.09.2012 в 12:39
mr_aVeNgEr
Сержант
Разумеется, это же вам не домашний пк. Чем быстрее ответ дойдет до сайта тем быстрее загрузиться сайт.

Добавлено (06.09.2012, 12:57)
---------------------------------------------
А что поставить, поставить это самое простое.

Дизайн\коддинг сайтов, контакты в профиле.
Мой не большой сайт для серверов WoW.
avenger-web.ru - мой блог о веб дизаине и кодинге.
Сообщение # 10 написано 06.09.2012 в 12:57
Xamejiuoh
Центурион
mr_aVeNgEr,
mysql_selectdb - deprecated стала ещё в 2007 году (уже как и весь mysql_*), mysql_selectdb псевдоним функци mysql_select_db ,что уже говорит о нежелательном его использовании помимо того что уже даже и весь mysql_* нежелателен...и используется только для обратной совместимости с старыми "пыхами".

Quote
Купи тачку в дц... Дело в канале

Дело то может и в канале..но более чем уверен, что причина его загрузки ,в супер верстке от местных умельцев...где только background весит более метра...и скрипты написанные ими же ..что тормозит процесс загрузки страницы...

Так что после нормальной оптимизации сайта и 3мб/с хватит с головой...я не думаю что у него на сайт заходит одновременно хотяб 10-30 людей...и то самое сложное для канала 1 загрузка...т.к браузер автоматически кеширует большенство ресурсов на ЖД пользователя и при следущей загрузке использует их уже с ЖД,т.е при дальнейшем серфинге по сайту для такого пользователся существенно будет снижен передаваемый трафик

Quote (oxxylolz)
по выключай програмы чтобы машину не грузили..т.к. больше памяти = быстрее загрузка!

Это поможет только при перенагрузке ...а когда и так есть достаточно свободной памяти это тебе ничего толком не даст...
Сообщение # 11 отредактировано Xamejiuoh - Четверг, 06.09.2012, 16:11
Boog
Скаут
Вариант кеширования безусловно спасает от подвисонов в 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');
?>


вот.
Самый легальный Буг в ру-нете, остальные фейк :D
[Trinity-Core]
[Ru-Mangos]
Сообщение # 12 написано 23.09.2012 в 17:57
  • Страница 1 из 1
  • 1
Поиск: