Na tela de lista de Produto do projeto CaelumEstoque, vi que a página fica fazendo requisições GET continuamente, sem ter tomado nenhuma ação nela. Qual a razão disso?
Não faço retornos AJAX no controller:
[Route("produtos",Name = "listaProdutos")]
public ActionResult Index()
{
ProdutosDAO dao = new ProdutosDAO();
IList<Produto> produtos = dao.Lista();
return View(produtos);
}
E teoricamente a chamada AJAX só ocorre com interação do usuário (clicando no link 'Decrementar'):
<tbody>
@foreach (var produto in Model)
{
<tr>
<td>@produto.Id</td>
<td>
@Html.RouteLink(produto.Nome, "visualizaProduto", new { id = produto.Id })
</td>
<td class="quantidade" id="quantidade@(produto.Id)">
@produto.Quantidade
</td>
<td>
<a href="#" id="decrementar" onclick="decrementa(@produto.Id)">Decrementar</a>
</td>
</tr>
}
</tbody>
function decrementa(produtoId){
var url = "@Url.Action("DecrementaQtd", "Produto")";
var params = { id: produtoId };
$.post(url, params, atualiza);
}
function atualiza(response){
var element = $("#quantidade" + response.Id);
console.log(element.html(response.Quantidade));
element.html(response.Quantidade);
}