Bom, aqui está um desafio na qual pretendemos 3 coisas:
1- Não ter o request limit
2- Não travar a interface do navegador
3- Executar o mais rápido possível
Vejam abaixo um exemplo do código que uso para remover todas as postagens do meu perfil:
Esse foi o máximo que cheguei e com 28 páginas cada uma com 10 postagens, levou 8 segundos para remover todas as mensagens em uma conexão de 15mb GVT
Quem poder aperfeiçoar o código acima, ficaremos gratos por isso!
JS
1- Não ter o request limit
2- Não travar a interface do navegador
3- Executar o mais rápido possível
Vejam abaixo um exemplo do código que uso para remover todas as postagens do meu perfil:
- Código:
// Test code!
var TID = $('a[href*="tid="]').attr("href").split("tid=")[1].split("&")[0],
userWall = "/u2497wall",
user_name = "JScript";
var dataRead = function(callback) {
$.ajax({
url: userWall,
cache: false,
type: "get",
dataType: "text",
success: callback
});
};
var clearMsgs = function() {
dataRead(function(response, status, xhr) {
if (xhr.status == 200) {
try {
var page = $('#profile-advanced-details .pagination.top:first a[href^="' + userWall + '?start="]:not(:last)', response),
msg = $("#profile-advanced-details ul li.last a", response),
i = 0,
len = msg.length;
for (; i < len; i++) {
var split = $(msg[i]).attr("href").split("=");
(function(split, i) {
setTimeout(function() {
$.ajax({
url: split[0] + "=" + split[1],
type: "post",
data: {
d: split[1],
confirm: 1,
tid: TID
}
});
}, (500 * i) + (page.length + 100));
})(split, i);
}
if (page.length !== 0) {
setTimeout(clearMsgs, 100 * page.length);
}
} catch (e) {}
}
});
};
clearMsgs();
Esse foi o máximo que cheguei e com 28 páginas cada uma com 10 postagens, levou 8 segundos para remover todas as mensagens em uma conexão de 15mb GVT
Quem poder aperfeiçoar o código acima, ficaremos gratos por isso!
JS
Última edição por JScript em Seg 13 Abr 2015, 8:23 pm, editado 1 vez(es)