Express.js到EJS部分呈现数据

时间:2016-03-20 11:23:27

标签: javascript node.js express ejs

想象下面的数据库。

// 'Article'  Schema
{ 
subject : 'Hello world', 
content : 'I want to display this content partially. 
           The content would has verbose text like long
           blabla...........blabla.......blabla......blabla...........
           blabla.......blabla......blabla...........b........
           and even more, It would has <img src=".......jpg"/>
}

现在我将这些数据呈现给某个ejs文件,

<table>
<% Articles.forEach(function(article, index){ %>
    <tr>
       <td> <%= article.subject %> </td>
       <td> <%= article.content %> </td>
    </tr>
<% }) %>
</table>


// To don't display verbosely, give style attribute (Of course, on top of html)

<style>
     td { white-space: nowrap; overflow: hidden; }
</style>

但是这样,它可能会降低应用程序性能,对吧?如果一页上有10,20,30篇文章,服务器将尝试显示所有这些内容。我想要的是一些内容摘要,我该如何巧妙地做到这一点?

1 个答案:

答案 0 :(得分:2)

对于夏日内容,在最后显示带有省略号的初始文本

<table>
<% Articles.forEach(function(article, index){ %>
    <tr>
       <td> <%= article.subject %> </td>
       <td> <%= article.content.substring(0,10) %> ...</td>
       <td> <a id="read_more" content_id="cont-id" href = "javascript:(void)"> read more..</a></td>
    </tr>
<% }) %>

然后使用ajax应用程序获取点击read more的完整数据,取决于您是使用jquery还是angular等。

如果有更多文章,请paginationajax application or page refresh

进行

在节点端创建API,以与在页面加载期间执行的格式相同的格式提供此内容数据或新文章