Asp.net MVC cache doubt

2

I have the following scenario:

Public ActionResult ProdutoFornecedor01()
{
     var produtos = _db.Produtos.Include(x => x.Fornecedor).OrderByDescending(x => x.ProdutoId).Where(x => x.Fornecedor.Id == 1).Take(10);
     return PartialView("_PartialProdutosFornecedor01", produtos);
}

Public ActionResult ProdutoFornecedor02()
{
     var produtos = _db.Produtos.Include(x => x.Fornecedor).OrderByDescending(x => x.ProdutoId).Where(x => x.Fornecedor.Id == 2).Take(10);
     return PartialView("_PartialProdutosFornecedor02", produtos);
}

Public ActionResult ProdutoFornecedor03()
{
     var produtos = _db.Produtos.Include(x => x.Fornecedor).OrderByDescending(x => x.ProdutoId).Where(x => x.Fornecedor.Id == 3).Take(10);
     return PartialView("_PartialProdutosFornecedor03", produtos);
}

In my %% of% Index I call View :

<div class="row">
     @Url.Action("ProdutoFornecedor01", "Produtos")
</div>

<div class="row">
     @Url.Action("ProdutoFornecedor02", "Produtos")
</div>

<div class="row">
     @Url.Action("ProdutoFornecedor03", "Produtos")
</div>

According to my Hosting Plan, there are many requests in the database.

I tried to use a PartialView :

Cache

But the customer complained that updating with a new product takes time to appear on Home.

What better way to work around this problem?

    
asked by anonymous 23.12.2014 / 22:59

2 answers

1

@Hermes

First, it will depend on the amount of records you are submitting. You can call async with the Entity Framework

One of the ways to load your Home more quickly is to load your views async with ajax.

As follows: In your view

<div class="row">
   <div class="partial" [email protected]("Action","Controller")></div>
</div>
<div class="row">
   <div class="partial" [email protected]("Action","Controller")></div>
</div>
<div class="row">
   <div class="partial" [email protected]("Action","Controller")></div>
</div>

and your js:

$('.partial').each(function(index,item) { 
   var url = $(item).data("url");
   if(url && url.length >0) {
     $(item).load(url);
   }
});
    
24.12.2014 / 00:46
1

You can keep the cache, and while inserting a product by the client, update the cache for this client's product list, as if it were a TRIGGER .

In this way the cache is only updated when a product is inserted, I suppose it is less often and will decrease access to the DB.

    
28.01.2015 / 17:27