请问纯静态网页有什么办法读取目录下的 csv 文件吗?

2018-12-22 13:59:02 +08:00
 Aoitechs

我现在用 html+css+js 编写了一个静态的相册网站,但是想要在加载网页的时候即时的从网站文件根目录下读取一个 csv 配置文件(里面有图片的文件名、描述等信息),然后即时加载到网站的 body 里面,以实现只需要修改资源文件夹就可以动态更新网页。 不知道有没有办法,把 html 同目录下的 csv 文件读取进入 js 脚本?跪谢

2450 次点击
所在节点    问与答
17 条回复
lhx2008
2018-12-22 14:02:03 +08:00
可以读进来,没问题,但是代码没人帮你免费写了
lhx2008
2018-12-22 14:02:25 +08:00
发一个 ajax 请求就读进来了
learnshare
2018-12-22 14:02:58 +08:00
每次更新完文件,gulp 或 webpack 构建一下,输出为包含内容的 HTML 即可
1024MB
2018-12-22 14:04:16 +08:00
可以,js 可以做到这个功能,Google 一下,很多的案例
Aoitechs
2018-12-22 14:46:33 +08:00
@lhx2008 ajax 请求是异步的,读取完之后 覆盖更新 div 就会导致其他的样式 js 不生效,如果改成同步的 ajax,会导致一直有一个 warning
Aoitechs
2018-12-22 14:47:26 +08:00
@learnshare 有没有不需要二次构建的办法呢,因为做出来的相册想提供给别人用 最好就是可以只是上传图片 和修改 csv,网站刷新一下就变了那种
learnshare
2018-12-22 15:17:56 +08:00
@Aoitechs JS 不生效,是 JS 事件处理做的不太对。
关键词:事件委托 或者 https://api.jquery.com/on/
hoyixi
2018-12-22 15:41:44 +08:00
@Aoitechs #6

定好 csv 目录路径,定好 csv 结构,只需要构建一次,构建完成后的那个 js 文件,扔给你的客户,以后他只要按照要求放正确的 csv 即可。
Arnie97
2018-12-22 16:32:49 +08:00
正好我做过类似的功能 https://github.com/evanplaice/jquery-csv
Aoitechs
2018-12-22 18:40:30 +08:00
@Arnie97 emmmmm 我的问题不在于处理 csv,而是怎么能把 csv 读进来。。。
hoyixi
2018-12-22 19:15:32 +08:00
@Aoitechs

不想用非 DOM API,不想用构建工具的话,最简单的方法就是不用 csv,用 json 文件,ajax 加载。
Aoitechs
2018-12-22 19:34:18 +08:00
@hoyixi ajax 加载 json 和 加载 csv 实质上差不多吧?主要目前异步 ajax 会出现别的问题(#5 )

或者说 有什么办法可以让静态网站读取一个同目录下的配置文件(不管是 json or csv ),然后作为一个参数参与到 js 后续的处理(主要是循环)中呢?
hoyixi
2018-12-22 20:02:04 +08:00
@Aoitechs

是得,ajax 加载 json 和 加载 csv 实质上一样,但是加载 json 不用再自己写或者引入专门解析 csv 的 js 代码了;

“异步 ajax 会出现别的问题”,感觉你好像是想在不改原有代码的基础上修补。但是很多情况不改是不可能的。你没贴代码,也没有实例,别人也没法明白你这个问题。

你静态页面里的 js 是在网页访问者的浏览器里运行的,要想读你服务器磁盘里的文件,除非通过 HTTP 请求文件方式,例如 ajax。
night98
2018-12-22 20:20:48 +08:00
d3.js 好像有直接加载 csv 的方法
MonoLogueChi
2018-12-22 20:26:42 +08:00
所以说,你的问题不是怎么读取,而是怎么渲染?
Aoitechs
2018-12-22 20:37:30 +08:00
感谢 @hoyixi 和 @learnshare 提供的思路 现在找到合适的解决方案了
pynix
2018-12-22 21:58:43 +08:00
JS 就行了吧。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/519990

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX