【问题标题】:Fastest Way To Format a Plain Text Using Javascript使用 Javascript 格式化纯文本的最快方法
【发布时间】:2011-03-10 00:07:53
【问题描述】:

我有一个巨大的纯文本文档,大约 700kb,对于纯文本来说非常大,我需要在云上对其进行格式化,将其转换为 HTML,但我需要替换的唯一内容是格式化为 HTML,这样它就可以由浏览器显示,分别为粗体斜体。对于纯文本的粗体,它们是这样的:

Not on bold... **bold text here** not bold here

斜体如下:

Not italic... *italic text* no italic

就像 StackOverflow 对它们的格式所做的那样,但问题是我需要让它更快,因为文本太大了......我的一个想法是添加页面幻灯片,所以我的脚本只是需要格式化文本的某些部分,而不是全部,然后在用户更改页面后再次调用脚本,但问题是我如何为这一切编写代码?

【问题讨论】:

  • 700Kb 无论如何都不是巨大的......
  • 不是二进制文件,而是纯文本

标签: javascript file-io formatting performance


【解决方案1】:

function boldAndItalicize(text) {
  return text.replace(/&/g, '&amp;').replace(/</g, '&lt;')
      .replace(/(\*+)([^*]{1,1024})(\*+)/g,
               function (whole, open, content, close) {
                 if (open.length === close.length) {
                   switch (open.length) {
                     case 1: return '<i>' + content + '</i>';
                     case 2: return '<b>' + content + '</b>';
                   }
                 }
                 return whole;
               });
}

太慢了?

如果您想将其拆分,您仍然需要扫描到断点,以确保您不会在斜体或粗体部分内拆分。

【讨论】:

  • 我需要如何在text 参数上插入文本文件?
  • @Nathan,您最好的选择可能是通过XmlHTTPRequest 获取它。
  • 但它是一个本地文件,而不是远程文件。我怎样才能做到?
  • @Nathan,我不知道您所说的本地文件是什么意思。如果它在您可以放置​​网络服务器的机器上,那么您可以为它提供服务。如果它在用户的机器上,那么您不应该尝试使用用户的浏览器从他们的机器上窃取本地文件。
  • 当我说本地时,我的意思是服务器上的文件:)
【解决方案2】:

您可以尝试将其划分为多个 div,并尝试找到一种方法在每个 div 可见时应用格式(即用户滚动并进入内容区域)。

我不知道该怎么做,但你可能会发现在 Jquery 中已经做过类似的事情并获取一些代码。

例如这样的事情: http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 2011-11-13
    • 2018-05-26
    相关资源
    最近更新 更多