Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.09.2010, 19:16
Аспирант
Отправить личное сообщение для vahrusha Посмотреть профиль Найти все сообщения от vahrusha
 
Регистрация: 19.01.2010
Сообщений: 42

загрузка файла через скрытый iframe и потеря связи с сервером
Здравствуйте, уважаемые.

Реализовал асинхронную загрузку файла на сервер с помощь скрытого iframe...
Работает это таким образом:
Файл отправляется, отображается лоадбар, в ифрэйм шлется результат выполнения. По событию onload в ифрэйме запускается функция, которая скрывает лоадбар, и пользователю выводятся различные сообщения в зависимости от результата посланного сервером в ифрейм.
Все работает замечательно, кроме случая, когда связь с сервером утеряна (т.е. как я понимаю событие onload не наступает и функция не запускается). В связи с этим вопрос: какое событие срабатывает, если теряется связь с сервером и в iframe данные не приходят.
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 23.09.2010, 21:39
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

onerror, очевидно же
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2010, 06:27
Аспирант
Отправить личное сообщение для vahrusha Посмотреть профиль Найти все сообщения от vahrusha
 
Регистрация: 19.01.2010
Сообщений: 42

Что-то onerror не срабатывает.
Кратенько:
function sendForm(form, url) {
  form = document.getElementById(form)
  var frame = createIFrame()
  form.setAttribute('target', frame.id)
  form.setAttribute('action', url)
  form.submit()
}
function createIFrame() {
  var id = 'f'+Math.floor(Math.random()*99999)
  var div = document.createElement('div')
  div.innerHTML = '<iframe id="'+id+'" name="'+id+'" src="about:blank" style="display:none" onload="someLoadbar(\'hide\');alert(\'onload\')" onerror="someLoadbar(\'hide\');alert(\'onerror\')"></iframe>'
  document.body.appendChild(div)
  return document.getElementById(id)
}

<form id="uploader" method="post" action="" enctype="multipart/form-data" onsubmit="return false">
  <input type="file" name="file" />
  <input type="button" value="Отправить" onclick="someLoadbar('show');sendForm('uploader', 'some.php')" />
</form>

Onload отлично обрабатывается, но если разорвать соединение перед отправкой, то onerror не сработает, лоадбар так и будет висеть вечно.

Последний раз редактировалось vahrusha, 28.10.2010 в 11:33.
Ответить с цитированием
  #4 (permalink)  
Старый 28.10.2010, 11:34
Аспирант
Отправить личное сообщение для vahrusha Посмотреть профиль Найти все сообщения от vahrusha
 
Регистрация: 19.01.2010
Сообщений: 42

Как же в таком случае отловить разрыв соединения?
Спасибо.
Ответить с цитированием
  #5 (permalink)  
Старый 27.05.2011, 15:01
Аватар для Андрей38
Профессор
Отправить личное сообщение для Андрей38 Посмотреть профиль Найти все сообщения от Андрей38
 
Регистрация: 11.12.2010
Сообщений: 261

Это по Квери вопрос.Как отловить событие загрузки http-страници В ИФРЕЙМ, а не документа ?
Не ужели ONLOAD есть общим ивентом для документа и http-страници в ИФРЕЙМЕ ?
__________________
http://www.youtube.com/watch?feature...&v=cz0uN1ZNuM0
История не в теории ,а по факту

Последний раз редактировалось Андрей38, 02.06.2011 в 11:16.
Ответить с цитированием
  #6 (permalink)  
Старый 01.06.2011, 14:43
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от vahrusha Посмотреть сообщение
Как же в таком случае отловить разрыв соединения?
Вариант 1.
При запуске загрузки в IFRAME запускать программный таймер на заданное время, например, на 20 сек. По срабатыванию таймера проверять, что творится в загружаемом IFRAME.

Вариант 2.
При отсылке в IFRAME результата выполнения предусмотреть отправку через равные промежутки времени js-функции "i_live", суть которой - подавать материнской странице сигнал "я жив". Как только сигнал перестал поступать - значит связь прервалась.
<script type="text/javascript">......i_live......</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файла без AJAX. B~Vladi Internet Explorer 36 25.01.2011 21:05
скрытый iframe определение видимости элемента в нем palermo Общие вопросы Javascript 1 29.01.2010 21:07
Не получается загрузить баннер в раздел DIV методами Javascript через iframe ((( autobuh Общие вопросы Javascript 3 24.07.2009 19:24