Ajax сделать браузер Load - PullRequest
       1

Ajax сделать браузер Load

2 голосов
/ 31 октября 2009

1- OPEN FIREBUG, на вкладке консоли

2- ОТКРЫТЬ СЧЕТ GMAIL,

3 - при загрузке Gmail нажмите на один из ярлыков (слева под черновиком)

4- С ПОМОЩЬЮ FIREBUG ВЫ ВИДИТЕ, ЧТО СТРАНИЦА НЕ ПОЛНОСТЬЮ ПЕРЕМЕЩАЕТСЯ, ПОСЛЕ ВСЕХ ПРЕДЫДУЩИХ ДЕЙСТВИЙ, ТОЛЬКО ДЛЯ ТЕКУЩЕГО ДОКУМЕНТА, НО БРАУЗЕР ПОЛНОСТЬЮ ДЕЙСТВУЕТ, КАК СТРАНИЦА БЫЛА ПЕРЕГРУЖЕНА, остановите и т.д. ...)

5- !!!!! это оно .. !!!!

Кто-нибудь знает, как такой сайт, как Gmail, может заставить браузер загружаться при вызове ajax (я имею в виду показать значок загрузки и все, историю и т. Д.)

Я уже знаю, что проверять навигацию по истории, но как в мире они могут заставить браузер работать так, как будто это была простая ссылка, загружающая полностью новую страницу.

Из того, что я вижу с такими вещами, как firebug, Gmail в основном извлекает информацию о почте в JSON, а затем использует некоторый Javascript для ее передачи пользователю. Но как они заставляют браузер загружаться в то время.

В Gmail, как только он загружен, очевидно, что он не загружает все данные из всей вашей папки в фоновом режиме, поэтому, когда вы нажимаете на какую-то папку и данные еще не загружены, они загружают браузер. как если бы он загружал полностью новую страницу, в то время как они извлекали информацию со своего сервера с помощью некоторого вызова ajax (в Firefox вы видите, что браузер работает так, как если вы нажимаете на обычную ссылку, загружается значок, активируется кнопка остановки (x) и все).

Это понятно?

Я придумал некоторый «уродливый» код для достижения своей цели, который довольно хорошо работает в FireFox и IE (к сожалению, он не работает в Chrome / WebKit и Opera).

Я говорю браузеру перейти на URL, по которому он не сможет связаться до завершения вызова ajax, с помощью window.location =. Браузер начинает загружаться, и тогда, когда успешный вызов ajax, я вызываю window.stop () (window.document.execCommand ('Stop') для IE), чем innerHTML ajax-данные в документе

Для меня это выглядит ужасно, и, поскольку он не работает должным образом в Chrome / Webkit, это явно не тот путь.

Ответы [ 7 ]

1 голос
/ 31 марта 2011

Они используют iFrame. Изменяя источник iFrame.

1 голос
/ 21 января 2011
document.getElementById('iframe').src = "http://www.exemple.com/browser_load.html";
1 голос
/ 13 марта 2010

http://www.stevesouders.com/blog/2009/04/27/loading-scripts-without-blocking/

Используйте один из способов, показанных для запуска состояния занятости браузера в таблице на странице выше.

1 голос
/ 31 октября 2009

Есть много способов использовать AJAX.

Gmail должен загрузить много файлов / данных, прежде чем пользователи смогут что-то значимое показать.

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

Следовательно, они показывают что-то легковесное, например, загрузку графики / индикатора выполнения, в то время как асинхронно (за сценой) извлекают больше данных с сервера, пока они не смогут заполнить страницу полным интерфейсом для использования.

Я не знаю, как объяснить дальше. Может быть, вики может помочь: http://en.wikipedia.org/wiki/Ajax_%28programming%29

0 голосов
/ 10 февраля 2014
  $(function($){

  $('a').attr('onclick','return false;').click(function(){
  var title = $(this).attr('title');
  var href = $(this).attr('href');
  $('title').html(title);
  $('#content').load(href+' #content', function(){
  history.pushState(null, null, href);
  }, function(responseText) {
  var title = responseText.match(/<title>([^<]*)/)[1];
  document.title = title;
});
  });
  });

  window.onpopstate = function( e ) {

  var returnLocation = history.location || document.location;
  var returnTitle = history.propertyName || document.title;  
  $('title').html(returnLocation.title)
  $('#content').load(returnLocation.href+ ' #content', function(){
  history.pushState(null, null, href);

  }, function(responseText) {
  var title = responseText.match(/<title>([^<]*)/)[1];
  document.title = title;
});

  }
0 голосов
/ 30 июня 2010

Думайте, что это ваш ответ:

http://www.obviously.com/tech_tips/slow_load_technique

Похоже на метод gmail и facebook (браузер показывает страницу как «загружаемую» с иконками загрузки и т. Д. - это просто симуляция, потому что есть фоновый запрос ajax):)

0 голосов
/ 05 ноября 2009

У Sitepoint есть книга «Создайте свои собственные AJAX-приложения», и они показывают некоторый контент (все?) В этом уроке: http://articles.sitepoint.com/article/build-your-own-ajax-web-apps

Они помогут вам с кодировкой AJAX.

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