Olá pessoal!
Eu estive analisando o HTML atual e como já sabemos, nós temos os avatares dos últimos postadores de forma nativa vindo da própria plataforma, ok, já não é mais novidade...
Mas sempre que precisamos mostrar o avatar de um membro, recorremos ao Ajax() e com isso corremos o risco do temível Request Limit, a única forma de se evitar até então era utilizando funções storage mas isso só vale enquanto estivermos na mesma página, ao trocar de página e retornar, o Ajax() é novamente executado!
Para contornar isso, nós podemos verificar se o avatar do membro consta nas categorias do fórum, com isso ganhamos em velocidade e em média uma taxa de 0% em uso do Ajax().
Magnífico não acham?
Reflitam (...)
Agora se entenderam o que eu expliquei acima, analisem o código abaixo e testem, mas lembrem-se:
"Só está com os seletores para a versão PUNBB, fica o exercício ai para vocês o tonarem compatível com as outras versões."
Baixou de forma espetacular!!!
E o melhor de tudo é que vocês podem implementar a função AvatarSearch() que eu fiz em vários outros códigos que fazem requisições para ter o avatar, imaginem...
Aguardo os "feedbacks" de todos,
JS
Eu estive analisando o HTML atual e como já sabemos, nós temos os avatares dos últimos postadores de forma nativa vindo da própria plataforma, ok, já não é mais novidade...
Mas sempre que precisamos mostrar o avatar de um membro, recorremos ao Ajax() e com isso corremos o risco do temível Request Limit, a única forma de se evitar até então era utilizando funções storage mas isso só vale enquanto estivermos na mesma página, ao trocar de página e retornar, o Ajax() é novamente executado!
Para contornar isso, nós podemos verificar se o avatar do membro consta nas categorias do fórum, com isso ganhamos em velocidade e em média uma taxa de 0% em uso do Ajax().
Magnífico não acham?
Reflitam (...)
Agora se entenderam o que eu expliquei acima, analisem o código abaixo e testem, mas lembrem-se:
"Só está com os seletores para a versão PUNBB, fica o exercício ai para vocês o tonarem compatível com as outras versões."
- Código:
/***
* Avatar in Last topics widget!
* More fast and safe, by JScript - 2013/07/13
*/
jQuery(function() {
var oSearch = jQuery('#main-content .main-content td.tcr a.gensmall[href^="/u"]'), // Location to look for avatars! In this case, looking in the categories.
oTarget = jQuery('#right .main-content > a[href^="/t"]'), // Here returns the object for the title of the widget "last topics"...
ilen = oTarget.length, // Size of array...
index = 0; // Here we accelerate the count of "for"!
for (index; index < ilen; index++) {
var oThis = jQuery(oTarget[index]), //
oUserInf = oThis.next().next(),
sHref = oUserInf.attr('href'),
sTitle = oUserInf.text();
oThis.before('<a href="' + sHref + '" title="' + sTitle + '" class="lastpost-avatar"><img src="http://r26.imgfast.net/users/2617/31/90/74/avatars/1-40.png" alt="no_photo" class="avt-wid" /></a>');
var oImg = oThis.prev().find('.avt-wid'),
// Here calls the function to search for the avatar!
sSrc = AvatarSearch(oSearch, sHref);
if (sSrc.length) { // if exists: Very, very, very fast!!!
oImg.attr('src', sSrc);
} else {
sSrc = sessionStorage.getItem(sHref); // Relative fast...
if (sSrc) {
oImg.attr('src', sSrc);
} else {
jQuery.get(sHref, function(data) { // Slow and dangerous!!!
var image = jquery('#profile-advanced-right .main-content img:first', data).attr('src');
oImg.attr('src', image);
sessionStorage.setItem(sHref, image);
});
}
}
}
});
function AvatarSearch(oObject, oTarget) {
var ilen = oObject.length,
index = 0;
for (index; index < ilen; index++) {
var oThis = jQuery(oObject[index]);
if (oThis.attr('href') == oTarget) {
var sImg = oThis.closest('td.tcr').find('.lastpost-avatar img').attr('src');
if (sImg.length) return sImg;
}
}
return '';
}
Baixou de forma espetacular!!!
E o melhor de tudo é que vocês podem implementar a função AvatarSearch() que eu fiz em vários outros códigos que fazem requisições para ter o avatar, imaginem...
Aguardo os "feedbacks" de todos,
JS