将 JavaScript 中的大字符串与哈希进行比较

2024-04-26

我有一个带有文本区域的表单,其中可以包含使用多个第三方富文本编辑器之一编辑的大量内容(例如博客文章)。我正在尝试实现类似自动保存功能的功能,如果内容发生更改,它应该通过ajax 提交内容。然而,我必须解决这样一个事实:我作为选项的一些编辑器不支持“isdirty”标志或“onchange”事件,我可以使用它来查看自上次保存以来内容是否已更改。

因此,作为一种解决方法,我想做的是将上次保存时的内容副本保留在变量中(我们称之为lastSaveContent),并在“自动保存”函数触发时将其与当前文本进行比较(在计时器上)看看是否有不同。但是,我担心非常大的文档会占用多少内存。

在lastSaveContent变量中存储某种哈希而不是整个字符串,然后比较哈希值会更有效吗?如果是这样,您能推荐一个好的 javascript 库/jquery 插件来实现此要求的适当哈希吗?


简而言之,您最好只存储和比较两个字符串。


计算正确的哈希值是not便宜的。例如,查看伪代码 http://en.wikipedia.org/wiki/MD5#Pseudocode or an 实际的 JavaScript 实现 http://phpjs.org/functions/md5/用于计算字符串的 MD5 哈希值。此外,所有proper无论如何,哈希实现都需要枚举字符串的字符。

此外,在现代计算的背景下,字符串必须是really, really在将其与另一个字符串进行比较之前很久很慢。您在这里所做的实际上是微观优化。内存不会成为问题,比较两个字符串的 CPU 周期也不会成为问题。

与所有优化案例一样:check这是actually在解决问题之前。在我进行的快速测试中,计算和比较 2 个 MD5 和花费了 382 毫秒。直接比较两个字符串花费了0ms。这是使用 10000 个单词长的字符串。看http://jsfiddle.net/DjM8S http://jsfiddle.net/DjM8S.

If you really认为这是一个问题,我也会强烈考虑使用穷人的比较;只是比较两个字符串的长度,看看它们是否改变,而不是实际的字符串比较。

..

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 JavaScript 中的大字符串与哈希进行比较 的相关文章

  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi
  • 将 Javascript 变量转换为 PHP 变量

    我想使用由 videoel getCurrentTime 函数返回给我的 javascript 变量 并将其转换为 php 变量 以便我能够将其添加到我的 SQL 插入查询中 例如 INSERT INTO tblData VALUES ph
  • 如何使用 LinkedIn javascript sdk 检索包括所有字段的职位列表?

    我想要获取 LinkedIn 会员在其个人资料中输入的每个职位的 ID 头衔 摘要 开始日期 结束日期 当前状态和公司名称 我测试了一个查询休息控制台 https apigee com console linkedin我得到了想要的结果 查
  • 合并两个非常大的文件,忽略第一句

    我想将两个巨大的文件 每个几百兆字节 合并成一个文件 同时忽略第一行 我想使用 awk 因为我认为它应该是最优化的方式 我这样做的方式只忽略第二个文件的第一行 知道如何做工作或者是否有更快的方法 awk FNR NR FNR 1 next
  • 如何根据按钮单击折叠和展开 Kendo UI 树视图中的所有树节点?

    这是行不通的 您可以使用此代码 1 崩溃 折叠kendoTree查看文档 http docs kendoui com api web treeview methods collapse treeview kendoTreeView var
  • 从未定义解构时避免错误

    可以说我有这个代码 const x y point Babel 会将其变成 var point point x point x y point y 这很好 但是如果点未定义怎么办 现在我得到一个错误 Cannot read property
  • 具有行组的 JQuery 斑马条纹表

    我通常将斑马条纹表行设置为奇数 偶数 如下所示 效果很好 table tbody tr visible even this addClass even table tbody tr visible odd this addClass odd
  • 什么是帕斯卡风格的字符串?

    The Photoshop 文件格式文档 http www adobe com devnet apps photoshop fileformatashtml 提及帕斯卡弦而不解释它们是什么 那么 它们是什么以及它们是如何编码的 Pascal
  • JQuery DataTable 单元格从行单击

    我正在尝试在 jquery 数据表上实现一个函数 该函数返回单击行的第一列和第四列 我正在遵循这个示例 它允许我操作单击的行http datatables net examples api select single row html ht
  • ReactJS:从没有 onChange 事件的 props 中选择默认值?

    所以 我只是想知道我是否绝对需要在 React 中的选择组件上有一个 onChange 事件处理程序 我有一个道具传递我想要选择的选项的默认值 如果我有的话 它就没有问题
  • Chrome Javascript 调试器暂停时不会重新加载页面

    有时 当我在 Chrome 中调试某些 javascript 并且暂停了 javascript 时 如果我尝试重新加载页面 chrome 只会 继续 调试器 单步执行到下一个断点 似乎没有任何方法可以强制 javascript 完全停止运行
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • 使用 JavaScript 的计时器

    我想使用java脚本实现计时器 我想随着间隔的变化而减少计时器 Example假设我的计时器从 500 开始 我想要根据级别减少计时器 例如1 一级定时器应减1 且递减速度应较慢 2 2级定时器应递减2 递减速度应为中等3 3级定时器应减3
  • Javascript 选择 onchange='this.form.submit()'

    我有一个带有选择和一些文本输入的表单 我希望在更改选择时提交表单 使用以下方法可以正常工作 onchange this form submit 但是 如果表单还包含提交按钮 则当选择更改时 表单不会提交 我猜有某种冲突 我在这里有什么选择
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • 使用 Lodash 的 TypeScript:_.map(["123", " 234 "], _.trim) 返回 boolean[]?

    我有一个字符串数组 它们已像这样分割 var searchValue 600 800 123 180 var groups searchValue split gt 600 800 123 180 因此项目周围可能存在空格 并且我想删除空格
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • 使用 jQuery Tablesorter 操作后如何恢复当前页面?

    我正在使用 tablesorter 但无法找到有关插件 tablesorter 寻呼机的任何文档 问题是我有一个显示一些数据的表 并且在每一行中都有一个删除链接 该链接附加了要删除的元素的唯一标识符 显然 是否可以保存我正在删除的页面 然后
  • 使用 React React-router 登录后重定向到主页,并且 usenavigate 不起作用?

    我希望用户在成功登录后重定向到主页 我将用户登录的 api 请求的数据存储在一个名为 currentUser 的变量中 因此如果 currentUser 为 true 它应该重定向到主页 这就是我处理登录请求的方式 export const

随机推荐

  • 是否有与 :hover 相反的 CSS 伪类?

    CSS中有没有伪类来指定 not hover 或者这是指定未悬停的项目的唯一方法 我浏览了几个 CSS3 参考资料 但没有看到任何提及 CSS 伪类来指定 hover 的相反内容 是的 使用 not hover child not hove
  • 使用Bundle传递数据时出现空指针异常

    我有一个浮点数组camObjCoord宣告为 public static float camObjCoord new float 8000 然后我在一个类中填充它的索引 该类执行如下操作 camObjCoord 1 2 5 然后我打电话ma
  • 更改 UIWebView 的文本颜色

    我正在制作一个 epub 阅读器 我将 HTML 页面加载到其中webview webview loadRequest NSURLRequest requestWithURL NSURL fileURLWithPath pagesPath
  • glibc 已弃用的 __malloc_hook 功能的替代方案

    我正在为 C 编写一个内存分析器 并为此拦截对malloc realloc and free通过 malloc hooks 函数 不幸的是 这些已被弃用 因为它们在多线程环境中表现不佳 我找不到描述实现相同目标的替代最佳实践解决方案的文档
  • 如何在 Plotly 中旋转绘图的轴?

    我在 Plotly 中完成了以下情节 如您所见 X Y 轴采用传统方式 如何旋转轴 使 X 垂直绘制 Y 水平绘制 向左 我还想修改每个轴的范围和间距 我想它必须对布局元素做一些事情 我的代码到目前为止 layout go Layout t
  • 如何使用 OAuth 2.0 实现 Web 小部件

    我想创建一个 Web 小部件来显示我网站上的信息 该小部件将使用 JavaScript 包含在客户网站的 HTML 中 并且只能用于我的客户 在我的网站上注册的网站 小部件中的信息应该特定于当前正在访问客户站点的用户 因此 我需要对客户端
  • Paint.getTextWidths。什么是提前宽度?

    什么是提前宽度 该术语出现在 android 类中Paint 具体来说是函数getTextWidths 文档指出 返回字符串中字符的提前宽度 什么是 提前宽度 前进宽度是与字体 版式相关的度量术语 这里有一些关于 SO 的问答涵盖了它 但简
  • 在 BHO 中检测页面刷新

    页面刷新 F5 后 IE 不会触发 DocumentComplete 和 NavigateComplete2 事件 这显然是 设计使然 但它使得响应页面重新加载变得困难 哪些方法取得了最大的成功 有什么注意事项 谢谢 没有直接的方法 很难跨
  • 透明卡片,但具有仰角阴影效果

    我在制作透明白色卡片 不透明度 0 4 时遇到问题 但是 带有来自高程效果的阴影 如果我删除高程 则不会有阴影效果 并且卡片看起来是透明的 但是 如果我添加一些高度 透明效果就会被破坏 这是我尝试过的 Widget cardMenu Str
  • Visual Studio Code 不建议使用 Python 对象属性

    我使用添加了 Python 扩展的 VS Code v1 25 1 尽管它向我建议了库和类的属性和方法 即我输入from sklearn 它提出像这样的建议ensemble exception等等 当我生成 numpy 数组时x data
  • 如何从纯文本中查找键值存储中的值

    给定一个纯文本文件 其中包含 FOO foo BAR bar BAZ baz 我们如何grep使用键获取值 Use a 向后看 https regex101 com r q3FNpe 1 grep Po lt FOO w file foo
  • OpenCover 与 TFS 集成

    我是 TFS 新手 希望将 OpenCover 与 TFS 集成 如果有人这样做过 请帮忙 这个问题相当老了 但也许你仍然感兴趣 对于当前版本的 TFS 2015 Update 2 现在可以将其作为 vsts 扩展 详细信息请参见此处 ht
  • 如何使用唯一指针向量?

    I use vector
  • 如何将 URL 参数传递到 Wordpress 页面中的 iFrame?

    WordPress 3 2 1 我有一个页面 其中嵌入了外部页面的 iframe 即在 WP 页面中我有以下代码 我可以动态设置外部网站源吗 通过 URL 参数 假设上面的页面是http mysite com myiframe page h
  • AVMutableVideoComposition 内的交叉淡入淡出

    我已经成功地用多个视频剪辑组成了一个 AVMutableComposition 并且可以查看和导出它 并且我希望能够使用交叉淡入淡出在它们之间进行转换 所以我想使用 AVMutableVideoComposition 我找不到任何关于如何连
  • 同一活动的多个通知

    我有一个正在从通知栏打开的活动 但是当我这样做时NotificationManager notify 我给意图一个不同的捆绑 以便每个通知打开相同的活动 但从数据库中获取彼此的其他信息 但是 当我尝试输入任何通知 例如有 3 个通知 时 它
  • C/C++ 有哪些突变测试框架?

    突变测试 https secure wikimedia org wikipedia en wiki Mutation testing已经出现有一段时间了 似乎至少有一两个针对 C C 的商业突变测试框架 你用过它们吗 你有什么经历 有没有开
  • 根据 1 的数量查找数字的排名

    令 f k y 其中 k 是非负整数递增序列中的第 y 个数 其二进制表示形式中的 1 数量与 k 相同 例如f 0 1 f 1 1 f 2 2 f 3 1 f 4 3 f 5 2 f 6 3 等等 给定 k gt 0 计算 f k 我们很
  • Google App Engine 电子邮件进入垃圾邮件文件夹

    当我使用邮件的 send mail 函数通过谷歌应用程序引擎发送电子邮件时 它们通常会被放置在收件人的 SPAM 文件夹中 虽然 GMail 帐户不会出现此问题 但 Yahoo Mail 帐户 可能还有其他几个帐户 会出现此问题 有没有办法
  • 将 JavaScript 中的大字符串与哈希进行比较

    我有一个带有文本区域的表单 其中可以包含使用多个第三方富文本编辑器之一编辑的大量内容 例如博客文章 我正在尝试实现类似自动保存功能的功能 如果内容发生更改 它应该通过ajax 提交内容 然而 我必须解决这样一个事实 我作为选项的一些编辑器不