【问题标题】:How to write value in text file using Javascript如何使用Javascript在文本文件中写入值
【发布时间】:2013-01-24 07:40:12
【问题描述】:

我正在使用 JavaScript 处理每个页面的浏览次数。

<SCRIPT LANGUAGE="JavaScript">
<!--
       var cookiec = document.cookie
       if (cookiec != "") {
               var eqchr = 0;
               for (var cloop = 1; cloop <= cookiec.length; cloop++) {
                       if (cookiec.charAt(cloop) == "=") {
                               eqchr=(++cloop);
                       }
               }
               var cookiess = 0;
               clength=cookiec.length;
               cookies="";
               for (cloop = eqchr; cloop < clength; cloop++) {
                       if (cookiec==";") {
                               cloop=clength;
                       }
                       else {
                               cookies = cookies + cookiec.charAt(cloop);                        
                       }
               }
               cookiess = parseInt(cookies);
               document.write("[" + cookiess + "]");
               cookiess++;
               cookies = cookiess;
               var one_week = 7 * 24 * 60 * 60 * 1000;
               var expDate = new Date();
               expDate.setTime(expDate.getTime() + one_week);
               document.cookie = "Counter=" + escape(cookies) + "; expires=" + expDate.toGMTString();
       }        
       else {
               var one_week = 7 * 24 * 60 * 60 * 1000;
               var expDate = new Date();
               expDate.setTime(expDate.getTime() + one_week);
                document.cookie = "Counter=2; expires=" + expDate.toGMTString();
               document.write("[1]");
       }
       
// -->
</SCRIPT>

我正在使用上面的 JavaScript 来计算每页的浏览量,并且我想将数据写入文本文件中。

你有什么建议吗?

【问题讨论】:

  • Snakes and Coffee 问了你一个问题:你愿意使用库来简化你的代码吗?

标签: javascript dom-events


【解决方案1】:

如果您的 JavaScript 在浏览器环境中运行,我强烈建议您使用 HTML5 localStorage 存储(键、值)对或使用 AJAX 与服务器通信,而不是尝试访问客户端上的文件可能会成为安全/隐私问题的机器。下面是一个使用localStorage 存储页面浏览量的简单示例:

if (localStorage.numberOfViews) {
  localStorage.numberOfViews = Number(localStorage.numberOfViews) + 1;
} else {
  localStorage.numberOfViews = 1;
}

希望这会有所帮助!

【讨论】:

  • (提示:localStorage.numberOfViews = +localStorage.numberOfViews + 1; 是一种更简洁的书写方式。)
  • 我更喜欢parseInt(localStorage.numberOfViews, 10) + 1。一元加号运算符无法通过 JSLint,让初学者的 JavaScript 开发人员感到困惑。
【解决方案2】:

在普通网络浏览器中运行的 Javascript 对本地文件系统的访问非常有限。

因此,现代网络浏览器将允许您将数据保存到专门目录中的文件中,与其他所有内容隔离。

在大多数情况下,使用 localStorage(正如其他人所提到的)是您最好的选择。

如果您在 Windows 下运行,您可以创建一个名为“.HTA”的专用文件,该文件使用与常规文件相同的访问和权限运行。

【讨论】:

    【解决方案3】:

    属性 LANGUAGE="JavaScript" 已弃用。你可以删除它。 现在,回答您的问题,您可以使用 PHP 来完成。当用户进入页面时发送数据,通过 AJAX 发送到您的服务器并使用 PHP 进行处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 2023-02-15
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多