Author Topic: processing.js实现实时交互数据保存问题  (Read 4279 times)

luochen_2011

  • Newbie
  • *
  • Posts: 7
processing.js实现实时交互数据保存问题
« on: October 08, 2012, 10:34:47 AM »
在网页上放了个js做的交互程序,需要保存交互的数据,但js好像不能使用数据库,一些文件处理也不行,用saveStrings()也不会生成文档,求帮助,谢谢!

ChocolateUniverse

  • Jr. Member
  • **
  • Posts: 97
  • BigQ 勤劳勇敢,爱好艺术
Re: processing.js实现实时交互数据保存问题
« Reply #1 on: October 08, 2012, 04:46:49 PM »
存成文件是可以的,肯定是你的代码有些问题,或者是操作系统权限. 如果想操作数据库,可以利用一个中间件,比如php 把数据库内容取出,以xml或者json格式传给js.
BigQ 勤劳勇敢 爱好艺术

luochen_2011

  • Newbie
  • *
  • Posts: 7
Re: processing.js实现实时交互数据保存问题
« Reply #2 on: October 09, 2012, 09:31:37 AM »
我用简单的测试程序,把数据保存的txt中,运行后,在web—export中根本没txt出现

evan

  • Moderator 版主
  • Newbie
  • *****
  • Posts: 28
  • HTML5/JS @ Google Creative Lab
    • personal site
Re: processing.js实现实时交互数据保存问题
« Reply #3 on: November 24, 2012, 02:04:42 PM »
不知道你的数据是什么格式的,但这里有一个办法可以不需要通过服务器中介保存文件(必须用Chrome)
论坛的代码显示有个bug,我代码里的加号都会被吞掉,请自行替换...

Code
<a id="save"></a>
<script>

    saveString('testing testing 123');

    function saveString (str, filename) {

        var a = document.getElementById('save');

        // 用data URI设置其文件内容。
        // 如果你想保存一个js对象为json文件
        // 用 a.href = "data:application/json," [加号] JSON.stringify(object)
        a.href = "data:text/plain," [加号] str;

        // filename是optional的,默认保存为save.txt
        a.download = filename || 'save.txt';

        // 触发一个伪点击事件来触发下载
        a.dispatchEvent(new Event('click'));

    }
</script>
« Last Edit: November 24, 2012, 02:59:14 PM by evan »
新浪微博@尤小右
twitter@youyuxi

Contra

  • SuperManager
  • Sr. Member
  • *****
  • Posts: 347
  • AC, game dev, new media art&tech.
    • i'm Contra
Re: processing.js实现实时交互数据保存问题
« Reply #4 on: November 24, 2012, 02:23:38 PM »
Mac 10.8,chrome 23。
似乎在反复修改发布时,加号偶尔会丢失,原因暂不详。每次操作,请耐心等页面loading结束后,再做后续操作。
« Last Edit: November 24, 2012, 02:33:24 PM by Contra »

evan

  • Moderator 版主
  • Newbie
  • *****
  • Posts: 28
  • HTML5/JS @ Google Creative Lab
    • personal site
Re: processing.js实现实时交互数据保存问题
« Reply #5 on: November 27, 2012, 04:12:30 AM »
另外,有两个开源库可以用来在更多的浏览器里保存即时生成的文件,不过需要你对HTML5 Blob API有一些了解。

https://github.com/eligrey/BlobBuilder.js
https://github.com/eligrey/FileSaver.js
新浪微博@尤小右
twitter@youyuxi

Tags: