2016-03-05 67 views
-1

我的要求是这样的 - 我会给每个教程视频提供一组标签。我必须建立一个HTML页面,在搜索标签时,与它相关的视频列表应该被显示。我如何去完成这个?不寻找代码,只是可用的选项。构建搜索页面

例子:

对于视频1,搜索标签是XML,JS,HTML。

对于Video2,搜索标签是JS,JSON。

对于Video3,搜索标记是JSON,XML。

在搜索页面中搜索“XML”时,Video1和Video3应该是 列出的。用户应该能够播放任何列出的视频。

我能想到的一个选择是将视频名称,路径,搜索标签放在XML文件中并用Javascript读取。

我需要单独的文件(如XML文件)来添加搜索标签,而不是在HTML页面中进行硬编码。另外,SQL数据库是最不优选的选项。

有点类似,但硬编码的版本在这里 - http://resource.grapii.com/files/jQueryFilter/divExample.html

+0

浏览角度文档网站上的教程。你所要求的大部分内容都在该教程中 – charlietfl

回答

1

我更愿意将数据存储在JSON格式,这是更容易在JavaScript处理:

[ 
    { name: 'Video1', tags: ['xml', 'js', 'html'] }, 
    { name: 'Video2', tags: ['js', 'json'] }, 
    { name: 'Video3', tags: ['json', 'xml'] } 
] 

A)如果量可搜索的记录相对较低(小于1000),您可以简单地使用for循环遍历所有记录,并在新数组中收集匹配结果。更好的方法是使用lodash filter。要检查记录是否有标签,请使用record.tags.indexOf(searchTag) != -1

B)如果您有大量记录,那么您必须通过标签对记录进行索引,以便您可以更快地搜索。最好的方法是使用后端数据库引擎(SQL,Mongo等)。另一个(有点麻烦)的想法是,你使用脚本为每个标签生成不同的JSON/XML文件,而前端只加载用户正在搜索的文件。