2008-11-26 4 views
1

Я использую gravatar для загрузки аватаров для каждого пользователя, который публикует историю на странице. Я также использую jquery для округления углов некоторых элементов span на странице. К сожалению, похоже, что захват аватаров из gravatar происходит до применения эффектов jquery (без кода gravatar элементы сразу округляются), поэтому элементы меняются по внешнему виду мгновенно после того, как они видны на сайте. Есть ли способ обойти это? (Я использую asp.net mvc)Как загрузить страницу с помощью gravatar и jquery?

+0

Не уверены, что проблема есть. Есть ли период быстрого повторного рендеринга, который вы не хотите, когда страница заканчивает загрузку, и ваш скрипт выполняется? Вы пробовали свою страницу без загрузки гравитатора? – strager 2008-11-26 06:34:22

ответ

0

Звучит так, как если бы ваш скрипт загрузки gravatar выполнялся до появления вызовов jQuery, изменяющих внешний вид. Есть ли способ, которым вы можете вручную называть груз гравитаром? Если это так, вы можете использовать документ jQuery. Теперь сначала позвоните в ваши косметические изменения, а затем вызовите груз gravatar. Таким образом, вы не будете ждать, пока гравитаторы закончатся, прежде чем «более важные» изменения пользовательского интерфейса будут запущены.

1

Я полагаю, вы загружаете гравитаторы с использованием URL-адресов, а не ajax и т. Д. document.ready() будет выполняться при загрузке DOM, не обязательно при загрузке всех изображений (gravatar). Вы можете попытаться использовать событие window.onload в своем случае.

0

Вот working JsFiddle demo как получить Gravatar профиля пользователя с помощью JSONP вызова API

$("form").on("submit", function(e) { 
     e.preventDefault(); 

     $.ajax("http://en.gravatar.com/" + md5($("#email").val()) + ".json", { dataType: "jsonp" }) 
     .done(function(result) { 
      for(var idx in result.entry) 
      { 
       var profile = result.entry[idx]; 
       console.log(profile); 
       $("#displayName").text(profile.displayName); 
       $("#avatar").attr("src", profile.thumbnailUrl); 
      } 
     }).fail(function(result) { console.log("fail", arguments); }); 


    }); 
Смежные вопросы