Jump to content
  • 0

альтернативная передача данных, скорость загрузки


Rau1
 Share

Question

17 answers to this question

Recommended Posts

  • 0

он мне нравится, но с ним у меня кое-что не работает...

у меня в форму встроен скрипт определения скорости Интернет соединения, вот и не получается результат измерения вывести в input..

Link to comment
Share on other sites

  • 0
он мне нравится, но с ним у меня кое-что не работает...

у меня в форму встроен скрипт определения скорости Интернет соединения, вот и не получается результат измерения вывести в input..

Странно, что не получается... Если есть переменная, которая содержит скорость соединения, то вс? получается!!!

Например, для PHP:

Ну или вставить через JavaScript значение тоже не проблема:

document.getElementById('myForm').elements['speed'].value = speed;

или

document.getElementById('speed').value = speed;

Может чего не понятно? :)

Link to comment
Share on other sites

  • 0

никак не проходит :)

вот код:

<script type="text/javascript" src="js/ispeed.js"></script>
<img src="" id="DataImg" onload="img_onLoad();" width=0 height=0>
<form id="Register" name="Register" action="update.php" method="post">
<input id="btnStartTest" type="button" name="submit" alt="Тест скорости" title="Нажмите для начала проверки" value="Скорость Internet" onclick="test_start_virtual('images/',PIC_SIZE_SMALL);">
### <span id="speed">0</span> Кбит/с ### - вместо этого надо что то другое...
<input class=button type="submit" value="ОК">
</form>

Link to comment
Share on other sites

  • 0
// Speed test script By: Serge Rivest 
// —
// PHP-Nuke 8.0 adapted by KrasivayaSvo

//Какую картинку грузим
var PIC_SIZE_SMALL = 0; //маленькую
var PIC_SIZE_MEDIUM = 1; //среднюю
var PIC_SIZE_LARGE = 2; //большую

var dataSrc = new Array('data_small.jpg', 'data_medium.jpg', 'data_large.jpg'); // имена файлов изображений
var dataSize = new Array(104,508,1000); // размер изображений в килобайтах
var testpicSize; // Текущий размер испытательного куска данных, автоматически установленный test_start(), используется в качестве индекса для dataSrc и dataSize
var timerStatus = 0 // Статус таймера
var timerStartVal, timerStopVal; // Значения, когда мы запускаем и останавливаем таймер
//var URL = 'http://php-nuke/images/'; //путь к папке, где лежат изображения


//
// onLoad, событие изображения, запускается когда данные img догрузились.
//
function img_onLoad()
{
// тест на готовность.
if(timerStatus == 1)
{
timer_stop();

// Вычисление длинны в секундах
var length_sec = (timerStopVal - timerStartVal) / 1000;

// Проверяем, если тест был слишком быстрым
if(length_sec == 0)
{
result_show(0); // Возможно проблема с кэшем возможно..
}
else if((testpicSize == PIC_SIZE_SMALL) && (length_sec <= 3))
{
test_start(PIC_SIZE_LARGE);
}
else if((testpicSize == PIC_SIZE_SMALL) && (length_sec <= 8))
{
test_start(PIC_SIZE_MEDIUM);
} else {
// Показываем результат
result_show(length_sec);
}
}
}

//
// result_show: Показывает результат теста на странице.
//
function result_show(length_sec)
{
// Вычисляем килобиты за время загрузки в секундах
var data_kbit_sent = dataSize[testpicSize] * 8;
var data_kbyte_sent = dataSize[testpicSize];
var kbit_speed = Math.round(data_kbit_sent / length_sec);
var kbyte_speed = kbit_speed / 8;


var button = document.getElementById('btnStartTest');
var TestProgress = document.getElementById('TestProgress');
var Speed = document.getElementById('speed');

if(kbit_speed == 0)
{
Speed.innerHTML = "Ошибка!!!";
} else {
Speed.innerHTML = kbit_speed;


}

// Сброс интерфейса
button.disabled = false;
TestProgress.style.display='none';
}

//
// timer_start: Старт таймера
//
function timer_start()
{
var myDate = new Date();
timerStartVal = myDate.getTime();
timerStatus = 1;
}

//
// timer_stop: Остановка таймера
//
function timer_stop()
{
var myDate = new Date();
timerStopVal = myDate.getTime();
timerStatus = 0;
}


//
// interface_init: Инициализация интерфейса для теста
//
function interface_init()
{
var button = document.getElementById('btnStartTest');
var TestProgress = document.getElementById('TestProgress');
var Speed = document.getElementById('speed');


button.disabled = true;
TestProgress.style.display = "block";
Speed.innerHTML='—';
}

//
// test_start Запуск теста с выбранным размером изображения
//
function test_start(picSize)
{
var DataImg = document.getElementById('DataImg');

testpicSize = picSize;
if(picSize == PIC_SIZE_SMALL) interface_init();
timer_start();
DataImg.src = URL + dataSrc[testpicSize] + '?' + Math.random();
}

function test_start_virtual(URL,picSize)
{
this.URL=URL;
test_start(picSize);
}

Link to comment
Share on other sites

  • 0
function result_show(length_sec)

{

// Вычисляем килобиты за время загрузки в секундах

var data_kbit_sent = dataSize[testpicSize] * 8;

var data_kbyte_sent = dataSize[testpicSize];

var kbit_speed = Math.round(data_kbit_sent / length_sec);

var kbyte_speed = kbit_speed / 8;

var button = document.getElementById('btnStartTest');

var TestProgress = document.getElementById('TestProgress');

var Speed = document.getElementById('speed');

if(kbit_speed == 0)

{

Speed.innerHTML = "Ошибка!!!";

} else {

Speed.innerHTML = kbit_speed;

}

// Сброс интерфейса

button.disabled = false;

TestProgress.style.display='none';

}

Вопрос в следующум: событие

alert(kbit_speed);

выда?т сообщение с ошибкой или показывает скорость?

Link to comment
Share on other sites

  • 0

Да, с JavaScript частенько возникают такие проблемы... Я рекомендую протестировать страницу через FireFox. После того, как нажм?шь кнопку и ничего не произойд?т, открой Инструменты --> Консоль ошибок. Очень полезная вещь для отладки :)

Link to comment
Share on other sites

  • 0

Что самое интересное, так это то, что на глаз ничего не попадается непонятного. Если выскакиет alert() и показывает скорость - то вс? правильно. Попробуй вот тут

if(kbit_speed == 0)

{

Speed.innerHTML = "Ошибка!!!";

} else {

Speed.innerHTML = kbit_speed;

}

вместо Speed написать document.getElementById('speed').

Я понимаю, что переменная объявлена строчкой выше, но вс? же...

Идентификатор speed и переменная Speed - разные вещи (тем более, что регистр отличается), но может вс?-таки JavaScript старается обработать код по следующей модели:

document.speed.innerHTML = bla-bla-bla ...

Т.е. игнорирует DOM.

Link to comment
Share on other sites

  • 0

не, и так не получается...

Ну или вставить через JavaScript значение тоже не проблема:

document.getElementById('myForm').elements['speed'].value = speed;

или

document.getElementById('speed').value = speed;

Подскажите пожалуйста как правильно вставить через JS?

Мож я не так то то пишу...

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy