Gridview分页的好坏 - 性能

时间:2009-08-13 11:24:10

标签: asp.net performance gridview

Gridview分页是不是很糟糕? 原因:1。如果javascript被禁用,它将无法正常工作。         2.搜索引擎将无法索引(我不知道这背后的原因究竟是什么)。 有人可以提供一些信息吗?

编辑: 现在我将其编码为:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
   int newPagenumber = e.NewPageIndex;
   GridView1.PageIndex = newPagenumber;
   GridView1.DataSource = Session["myDataSet"];

   GridView1.DataBind();

}

3 个答案:

答案 0 :(得分:0)

分页是避免在页面中一次呈现所有内容的概念。这有助于减少页面的总大小。

如果您不对网格视图应用分页并且您的控件包含数千行,那么这将是用户等待页面加载的可怕体验。

您只能从数据库中提取特定页面所需的记录数。这将避免获取所有行然后仅显示必要行的负担。

答案 1 :(得分:0)

gridview分页的默认实现是性能和SEO的最差选择。因为它加载了数据源中的所有数据行,即使它只显示10行。第二,搜索引擎不索引回发

但是有很多解决方法可以解决这个问题。实现自定义数据源以摆脱从数据源读取所有行,然后构建自定义控件以支持seo友好的寻呼机控件(你甚至可以使用新的asp.net mvc框架)


单独注意 - 我在上面看到你的代码 - 这是最糟糕的编码方式。永远不会在会话中保存庞大的数据,如果你有太多用户,你会很快耗尽内存...而是使用全局缓存应用程序,将最常读取的数据保存在那里并将其用于显示目的

答案 2 :(得分:0)

澄清一下,你是说:

  1. 默认情况下,GridView中的分页控件是LinkBut​​tons,它使用JavaScript执行回发?
  2. 带有分页GridView的页面一次只会显示 n 记录(其中 n 是您的页面大小)?
  3. 因此,您担心的是,搜索引擎只能看到您网页上的第一个 n 记录,因为它可能不会遵循javascript链接?因此,如果您希望将数据源中的所有记录编入索引,这可能是SEO的一个问题吗?

    我的解决方法是使用ListView control代替DataPager control使用QueryString field通过GET传递页码。这可以通过搜索引擎机器人轻松实现。