小编Tri*_*kar的帖子

Git 正在转向新的哈希算法 SHA-256,但为什么 git 社区选择了 SHA?256?

我刚刚从这篇HN-post 中了解到 git 正在转向新的散列算法(从SHA-1SHA-256

我想知道什么SHA-256最适合 git 的用例。是否有任何/许多强有力的技术原因,或者SHA-256受欢迎程度是否可能是一个重要因素?(我在猜测)看着https://en.wikipedia.org/wiki/Comparison_of_cryptographic_hash_functions页面,我看到你有许多现代和旧的替代品。其中一些比SHA-256(例如https://crypto.stackexchange.com/q/26336)性能更高(如果不是更高的话,几乎相同)

git hash cryptography

13
推荐指数
1
解决办法
5440
查看次数

升级到 Webpack 5 后无法访问 copy-webpack-plugin 中的菜单

4.6.0我的配置在 webpack 版本和 webpack-assets-manifest 版本中运行良好3.1.1

自从我升级到 webpack5和 webpack-assets-manifest 到5. 我没有从我的东西中获得价值,manifestObject它只是一个空物体

我怀疑发生这种情况是因为在创建清单之前运行的转换函数查看了 webpack-assets-manifest 的新文档,但无法使其工作

我的目标是访问转换函数中的清单值,但看起来转换函数在生成清单之前正在运行

var CopyWebpackPlugin = require('copy-webpack-plugin');
var SaveHashes = require('webpack-assets-manifest');

const manifest = new SaveHashes({
    entrypoints: true,
    entrypointsKey: 'entryPoints'
});
module.exports = {
    entry: {
        main: ['./src/apps/main'],
        games: ['./src/apps/games'],
    },
    output: {
        path: path.join(__dirname, 'dist'),
        publicPath: assetsUrl,
        filename: 'assets/javascript/[name].[contenthash].js',
        chunkFilename: 'assets/javascript/[name].[contenthash].js'
    },
    .
    .
    .
    .
    .
    plugins: [
        new CleanWebpackPlugin(),
        manifest,
        new CopyWebpackPlugin([
            {
                from: './views/**/*',
                to: path.join(__dirname, 'dist'), …
Run Code Online (Sandbox Code Playgroud)

javascript webpack

6
推荐指数
1
解决办法
875
查看次数

更改 window.location.hash 会在历史记录中创建条目,但不会影响 chrome 后退按钮

更新:-正如Akansh Gulati他的回答中指出的,如果用户在单击后退按钮之前与页面进行任何交互,这将按预期工作,如果用户没有与页面进行任何交互并按后退按钮,则历史记录中的任何条目(通过哈希-change 或通过history.push/replace)将被忽略,这是Google Chrome更新的一部分,将阻止网站劫持您的浏览器后退按钮

这是有效且合乎逻辑的答案,所以我接受他的答案


我试图在页面加载后显示成功的弹出窗口,如果用户按 android 后退按钮(在本例中相当于浏览器后退按钮),我只想关闭弹出窗口(不想重定向回付款页面)

当弹出窗口打开时,我在 url 中添加哈希,但当用​​户按下后退按钮时,chrome 会忽略哈希并重定向回上一页,而不是仅删除哈希(在 Firefox 中工作正常)

我这里有一个工作示例,使用以下 HTML 代码来重现

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
  </head>
  <body onload="test()">
    <button type="button" onclick="window.history.back();">Back</button>
  </body>
  <script type="text/javascript">
    function writeLength() {
      document.body.appendChild(document.createTextNode(window.history.length));
    }

    function test() {
      window.location.hash = 'a';
      setTimeout(function() {
        writeLength();
        window.location.hash = 'b';
        setTimeout(function() {
          writeLength();
          window.location.hash = 'c';
          setTimeout(function() {
            writeLength();
          }, 1500);
        }, 1500);
      }, 1500);
    }
  </script>
</html>
Run Code Online (Sandbox Code Playgroud)

a) 在 chrome 中打开此页面

b) 等待哈希值更改为“#c” …

javascript google-chrome browser-history html5-history

5
推荐指数
2
解决办法
5433
查看次数

JavaScript 垃圾收集器何时以及如何工作

我也喜欢读几篇文章,这对MDN这一次我得到的GC是如何发生的JavaScript中的想法

我还是不明白像

a) 垃圾收集器什么时候开始(在一段时间后或必须满足某些条件后被调用)?

b) 谁负责垃圾收集(它是 JavaScript 引擎或浏览器/节点的一部分)?

c) 在主线程或单独线程上运行?

d) 以下哪一项具有更高的峰值内存使用量?

// first-case
// variables will be unreachable after each cycle

(function() {
  for (let i = 0; i < 10000; i++) {
    let name = 'this is name' + i;
    let index = i;
  }
})()
Run Code Online (Sandbox Code Playgroud)
// second-case
// creating variable once

(function() {
  let i, name, index;

  for (i = 0; i < 10000; i++) {
    name = 'this is name' + i; …
Run Code Online (Sandbox Code Playgroud)

javascript garbage-collection v8 spidermonkey

2
推荐指数
1
解决办法
573
查看次数