想象下面的数据库。
// '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篇文章,服务器将尝试显示所有这些内容。我想要的是一些内容摘要,我该如何巧妙地做到这一点?
答案 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等。
如果有更多文章,请pagination
与ajax application or page refresh
在节点端创建API,以与在页面加载期间执行的格式相同的格式提供此内容数据或新文章