如何通过jquery ajax按需加载巨大的html数据



我开发了我们的公司网站,我们在其中显示一个产品详细信息意味着ASPX页面中的一条记录。 有时我们的HTML数据很大,用户必须多次滚动页面才能阅读整个内容。 我知道如何通过调用 jquery ajax 的服务器端方法来获取和显示页面中的固定数量的记录 asp.net 并解析 JSON 以填充 UI。 问题是在我的案例 记录是我每页显示的记录,记录来自数据库。每条记录都是我展示的巨大 HTML 数据。在这里,我给出了我们网站的示例URL,其中我们显示了大量的HTML数据。http://www.bba-reman.com/content.aspx?content=bba_reman_diagnostics_tools

我想知道好的技术,通过它我可以在我的页面中显示部分数据,当用户向下滚动时,下一组数据将被获取和显示。 所以建议我如何从整个 HTML 中提取 HTML 的一小部分并显示在页面中,当用户向下滚动时,然后提取下几部分 HTML 并显示在页面中。 所以简而言之,我需要知道如何划分几个部分是一个巨大的HTML数据。 请帮我概念。谢谢

我的一个项目中遇到了类似的情况,我使用 JQuery 解决了它。滚动事件。这是滚动事件的官方链接。您需要做的就是:

  1. 确定要一次向用户显示的 HTML 字符大小限制。假设它是 X。如果您的 HTML 字符总数大于 X,则只需从数据库返回 X(或从 CS 文件中的业务逻辑返回 X,以防您想避免使用多个数据库调用)

  2. 捕获用户的 Scroll 事件,并通过将文本附加到标签来获取 + 绑定下一组数据

如果您所说的是您提供的链接上的所有产品内容都存储在 db 中的一个字段中,您可以使用 wrap() 等方法使每个产品像一行,并根据用户交互显示某些行。

下面是一些示例代码,通过在浏览器控制台中运行它来测试您的页面。它在顶部创建了一个非常简单的寻呼机,也可以在底部克隆。页面中的标记可以改进,通过添加一些更好的 ID 来更有效地使用 jQuery,并且还有一些不寻常的嵌套正在进行

$(function(){
/* wrap each pair of picture and description in a div*/
$('.diagnostic_picture').each(function(){
   $(this).next('.diagnostic_information').andSelf().wrapAll('<div class="product_row" style="clear:both">');
});
/* cache rows to variable */
var $products=$('.product_row');
var total_products=$products.length;
/* hide all but first 5 "rows" */
$products.slice(5).hide();
/* create  a pager based on qty of products and 5 per page */
var pager='<ul class="pager" style="height:1.5em; margin: 10px 0;">';
var pager_length=Math.round( total_products/5);
for( i=0; i< pager_length; i++){
    pager+='<li style="float:left"><a href="#" style="padding:5px;color:blue; background: #CCC; margin-right:5px; display:block" data-pager_start="'+(i*5)+'">'+(i+1)+'</a></li>';
}
pager+='</ul>';
/* insert pager before first "row" */
$products.eq(0).before( pager);
/* pager click handler */
$('.pager a').click(function(){
    var start=$(this).data('pager_start');
    $products.hide().slice(start, (start+5)).show();
    return false;
});
});

我创建了一个寻呼机作为示例,您还可以根据滚动显示更多行。您应该能够将此代码直接放入您的页面中以尝试

最新更新