首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
拉勾
V2EX  ›  问与答

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

  •  
  •   Aoitechs · 87 天前 · 939 次点击
    这是一个创建于 87 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

        1
    lhx2008   87 天前 via Android
    可以读进来,没问题,但是代码没人帮你免费写了
        2
    lhx2008   87 天前 via Android
    发一个 ajax 请求就读进来了
        3
    learnshare   87 天前
    每次更新完文件,gulp 或 webpack 构建一下,输出为包含内容的 HTML 即可
        4
    1024MB   87 天前 via Android
    可以,js 可以做到这个功能,Google 一下,很多的案例
        5
    Aoitechs   87 天前
    @lhx2008 ajax 请求是异步的,读取完之后 覆盖更新 div 就会导致其他的样式 js 不生效,如果改成同步的 ajax,会导致一直有一个 warning
        6
    Aoitechs   87 天前
    @learnshare 有没有不需要二次构建的办法呢,因为做出来的相册想提供给别人用 最好就是可以只是上传图片 和修改 csv,网站刷新一下就变了那种
        7
    learnshare   87 天前
    @Aoitechs JS 不生效,是 JS 事件处理做的不太对。
    关键词:事件委托 或者 https://api.jquery.com/on/
        8
    hoyixi   87 天前
    @Aoitechs #6

    定好 csv 目录路径,定好 csv 结构,只需要构建一次,构建完成后的那个 js 文件,扔给你的客户,以后他只要按照要求放正确的 csv 即可。
        9
    Arnie97   87 天前 via Android
    正好我做过类似的功能 https://github.com/evanplaice/jquery-csv
        10
    Aoitechs   87 天前
    @Arnie97 emmmmm 我的问题不在于处理 csv,而是怎么能把 csv 读进来。。。
        11
    hoyixi   87 天前
    @Aoitechs

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

    或者说 有什么办法可以让静态网站读取一个同目录下的配置文件(不管是 json or csv ),然后作为一个参数参与到 js 后续的处理(主要是循环)中呢?
        13
    hoyixi   87 天前   ♥ 1
    @Aoitechs

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

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

    你静态页面里的 js 是在网页访问者的浏览器里运行的,要想读你服务器磁盘里的文件,除非通过 HTTP 请求文件方式,例如 ajax。
        14
    night98   87 天前 via Android
    d3.js 好像有直接加载 csv 的方法
        15
    MonoLogueChi   87 天前 via Android
    所以说,你的问题不是怎么读取,而是怎么渲染?
        16
    Aoitechs   87 天前
    感谢 @hoyixi 和 @learnshare 提供的思路 现在找到合适的解决方案了
        17
    pynix   87 天前
    JS 就行了吧。。。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4026 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 03:26 · PVG 11:26 · LAX 20:26 · JFK 23:26
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1