| главная -> статьи -> сетевые приложения | |
|
Принципы организации взаимодействия пользователя с приложением (ресурсом)
1. Традиционный последовательный интерфейс, - заключается в выдаче пользователю серии страниц, формирующихся с учетом его действий (сохранение и передача параметров посредством запросов, объекта session, скрытых полей). 2.Обновляемая форма, - одна страница, например со слоями, обновляемая сервером. Может рассматриваться как разновидность традиционного последовательного. 3. Динамически изменяемая форма (без полного обновления). Первая и вторая позиции обычно не вызывают сомнений в принципах их реализации. Но вот с третьей следует разобраться. Новомодная технология AJAX (Asynchronous JavaScript and XML), в которой web-страница сама догружает нужные пользователю данные, аппелирует к ускорению взаимодействия клиента с сервером. Конечно, это важная позиция в проектировании приложения, но существуют более отягощенные ситуации. Например, при использовании в учебных приложениях flash графики (схемы, структуры) с последовательным изменением состояния в процессе взаимодействия с ними, обновление просто не допускается (или будет чрезмерно неэффективным). Подобные проблемы можно разрешать и старым дедовским способом (не сравнивая эффективность решений). Использование объекта iframe На странице размещаем плавающий фрейм нулевой размерности: <iframe name = "get_block" id = "get_block" src="get_block.asp" width="0" height="0"> С основной страницы обращаемся к нему по какому-то событию: get_block.location.assign("get_block.asp?block_id="+переменная); На стороне сервера производится обработка события - get_block.asp, и возвращается страница, на которой можно разместить требуемую информацию.
<html>
<head>
<script language="JavaScript">
var blarr_col = new Array(<% =tmp_blarr_col%>);
function onLoaded(){
parent.blarr_col = blarr_col;
parent.start_block();
}
</script>
</head>
<body onLoad="onLoaded()"> </body></html>
В приведенном примере предается массив цветов, после загрузки фрейма этот массив
переписывается в родительскую страницу, вызывается функция parent.start_block()
|
|
|
© 2007 Сединко А.М.
© 2004 design by kir |