Форум » Вебмастер и вебдизайн » Языки программирования » Ajax в Open Slaed. Шкала загрузки.
Открыть Ответить

Ajax в Open Slaed. Шкала загрузки.

5

5

1
12.09.2010 17:54:48

Вопрос такой. В Open slaed аякс есть, но, в отличии от Про версий, там нет такой штуки, когда в то время, когда юзер нажал кнопку и до появления информации на экране, выводится loading.gif, извещающий о том, что происходит загрузка данных.
В Опене же, при нажатии на элемент, ничего не происходит до тех пор, пока собственно данные не прогрузятся. Минус этого в том, что если у пользователя медленный интернет или если сервер перегружен, данные могут загружаться довольно долго, и, не увидев результатов своего клика, пользователь просто уйдет, не дождавшись загрузки.

Надеюсь ясно что я имею ввиду)))

Как реализовать показ гифки в тот момент, пока данные грузятся?

Версия системы SLAED CMS 2.6 Lite
Версия PHP PHP 4
Сервер Сервер в интернете
Goshan
Goshan
3.92

3.92

2
12.09.2010 18:50:44 12.09.2010 18:53:49

ты что там фильм 10-гигабайтовый грузишь?

у тебя есть в папке ajax файл load.js ?
есть там такая функция ?

WhenLoading(obj)

panic
panic
3.38

3.38

3
12.09.2010 19:38:18

дада, видел такую, но как её присобачить?)) не могу догнать)

Goshan
Goshan
3.92

3.92

4
13.09.2010 08:45:34 13.09.2010 08:48:48

для начало эта функция должна выглядеть примерно так

Код
function WhenLoading(obj) {
	var e = document.getElementById("rep"+obj); 
	e.innerHTML = "<center><img src=\"images/misc/loading.gif\"></center>";
}

присобачить очень просто

PHP
	echo "<div id=\"repmyfunc\">".myfunc()."</div>";
panic
panic
3.38

3.38

5
13.09.2010 11:20:51 13.09.2010 11:24:24

так она и выглядит.

но что-то все равно не понял =((

id дива с rep должно начинаться? а что дальше?

Goshan
Goshan
3.92

3.92

6
13.09.2010 12:47:44 13.09.2010 12:52:21

да должно начинаться с rep

что тебе вообше там надо грузить ?

panic
panic
3.38

3.38

7
13.09.2010 13:09:55 13.09.2010 13:15:50

у меня по нажатию на ссылку на событие onclick повешан ajax(), соответственно делается запрос в бд и в нужном диве появляется результат запроса. Нужно чтобы пока этот запрос совершается, вывелась надпись типа Подождите, загрузка...

ну вот как здесь, на сайте слаеда, если нажать title в блоке Пользователи, появился процесс загрузки и содержимое обновится... только тут используется какая то замудреная функция LoadGet(), у меня то вообще все проще, через ajax.php...

Событие onclick выглядит так:

Код
onclick="ajax('ajax.php?go=5&op=function', 'divname');"
Goshan
Goshan
3.92

3.92

8
13.09.2010 13:16:29 13.09.2010 13:32:33

$id = ИД;
$text = "если надо текст";
OnClick=\"LoadGet('', 'myfunc', '2', 'myfunc_save', '$id', '', '', '', '$text'); return false;\"

что делает LoadGet она при нажатие посылает в функцию myfunc_save переменные $id, $text через GET

function myfunc_save(){
$id = $_GET['id'];
$text = $_GET['text'];

**запрос**

return myfunc()
}

в ajax.php добавь

} elseif($go == 2) {
$ThemeSel = get_theme();
if (file_exists("templates/$ThemeSel/index.php")) {
include("templates/$ThemeSel/index.php");
} else {
include("function/template.php");
}
include("function/no-cache.php");
include("function/function.php"); # файл где находятся функции myfunc() и myfunc_save()..
switch($op) {
case "myfunc":
myfunc();
break;

case "myfunc_save":
myfunc_save();
break;
}
}

я не имел дел с Open slaed но должно быть примерно так
описал как в PRO версии данное делается

panic
panic
3.38

3.38

9
13.09.2010 13:52:52 13.09.2010 14:05:46

спасибо.. попробую подразобраться, но очень уж не хотелось бы избавляться от простенькой в обращении ajax()...

а зачем в
OnClick=\"LoadGet('', 'myfunc', '2', 'myfunc_save', '$id', '', '', '', '$text'); return false;\"

написано 'myfunc', если он посылает на myfunc_save ?

Goshan
Goshan
3.92

3.92

10
13.09.2010 14:48:10
PHP
function myfunc(){
$arg = func_get_args();
$obj = analyze($arg[0]);
$content = "<a href=\"#\" OnClick=\"LoadGet('', 'myfunc', '2', 'myfunc_save', '".$id."', '', '', '', '".$text."'); return false;\">Ссылка</a>";
if ($obj) { return $content; } else { echo $content; }
}

function myfunc_save(){
$text = $_GET['text'];
$id = $_GET['id'];
**запрос**
return myfunc(0);
}
PHP
echo "<div id=\"repmyfunc\">".myfunc(1)."</div>";
panic
panic
3.38

3.38

Открыть Ответить
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код

Предварительный просмотр