文章851
标签121
分类10

在 Google Chrome 中通过开启 `allow pasting` 解决禁止粘贴的问题

2025-01-27T04:04:09.png

在 Web 开发中,用户体验至关重要。有时我们需要控制用户的输入,特别是在需要防止错误输入的场景中,可能会禁止粘贴操作。然而,这种限制可能会影响用户的正常操作。本文将介绍如何在 Google Chrome 中通过开启 allow pasting 解决禁止粘贴的问题,并提供代码示例。

1. 理解粘贴限制

在某些应用中,我们可能需要禁止用户在特定输入框中粘贴内容。例如,用户输入密码或敏感信息时,可能希望确保信息的安全性。然而,完全禁止粘贴操作可能会导致用户的不便。

2. 使用 allow pasting 属性

通过设置输入框的 allow pasting 属性,我们可以在一定程度上控制用户的粘贴行为。虽然没有直接的 allow pasting 属性,但可以通过 JavaScript 的事件监听器实现类似的效果。

3. 示例代码

以下是一个简单的 HTML 示例,展示如何使用 JavaScript 实现禁止粘贴的同时,提供一个按钮来允许用户重新启用粘贴操作。

HTML 结构

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>禁止粘贴与允许粘贴示例</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
    </style>
</head>
<body>

<h2>禁止与允许粘贴示例</h2>
<input type="text" id="inputField" placeholder="尝试粘贴内容" />
<button id="allowPasting">允许粘贴</button>

<script>
    const inputField = document.getElementById('inputField');
    let allowPaste = false; // 控制粘贴状态

    // 禁止粘贴事件
    inputField.addEventListener('paste', function(event) {
        if (!allowPaste) {
            event.preventDefault(); // 阻止默认粘贴行为
            alert('粘贴操作被禁止!');
        }
    });

    // 允许粘贴按钮事件
    document.getElementById('allowPasting').addEventListener('click', function() {
        allowPaste = true; // 允许粘贴
        alert('现在可以粘贴内容!');
    });
</script>

</body>
</html>

代码解析

  1. HTML 结构

    • 创建一个输入框和一个按钮。用户可以在输入框中尝试粘贴内容,并通过按钮来允许粘贴。
  2. JavaScript 部分

    • 定义一个布尔变量 allowPaste 来控制是否允许粘贴。
    • 为输入框添加 paste 事件监听器。如果 allowPastefalse,则阻止粘贴操作,并弹出警告。
    • 为按钮添加点击事件,点击后将 allowPaste 设置为 true,并弹出提示,告知用户现在可以粘贴。

failed (13: Permission denied) while reading upstream 解决方法

2025/01/19 23:51:09 [crit] 9471#9471: *76105 open() "/var/lib/nginx/tmp/fastcgi/0/69/0000000690" failed (13: Permission denied) while reading upstream, client: 127.0.0.1, server: localhost, request: "GET /index.php/index?addtabs=1&sort=show_name&order=desc&filter=%7B%7D&op=%7B%7D&_=1 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "127.0.0.1:8009"

【解决方法】

vi /usr/local/nginx/conf/nginx.conf

#user nobody;

修改为

user root;

重启nginx

这么改只是 临时解决方案 不安全 罪啊后的方式还是针对目录授权

Database Error: Conversion from collation utf8mb3_general_ci into utf8mb4_general_ci impossible ....

今天 程序遇到下述 :

Database Error: Conversion from collation utf8mb3_general_ci into utf8mb4_general_ci impossible for parameter3988

场景时 我的接口程序需要插入 emoji 😅😅😉😉😉, 但插入时代码抛错.

我这边也是 DBA 将 Mysql5.7 才升级到 mysql8 之前就遇到很多默认编码不同的问题. DBA 批量将我们的表字段编码都改为 utf8mb4 字符集排序 utf8mb4_general_ci

 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci

PHP 程序连接 mysql 的 chatset = 'utf8'; 因为之前有遇到个类似问题. 之前排故 都是各种找 表 / 库 / 字段 的编码字符集是否正常.
最后找到的原因是 连接时字符集出了问题.

升级了mysql8, PHP mysql 客户端 utf8 对应的字符集 在mysql服务端那边变成了 utf8mb3 ....

我调整了默认连接 字符集编码 chatset = 'utf8mb4';, insert 插入成功了 .

使用 SSH 本地代理连接远程服务器

在网络环境中,有时我们需要通过本地代理服务器连接到远程服务器,以保护数据传输安全或访问受限资源。SSH 提供了 ProxyCommand 选项,可以方便地实现通过本地代理连接到远程服务器的功能。
2025-01-16T09:52:42.png

步骤

1. 设置本地代理

首先,确保您已经设置和运行了本地代理服务器。通常,本地代理服务器会监听在本地的特定端口上,比如 127.0.0.1:1087

2. 使用 SSH 连接远程服务器

下面是使用 SSH 连接到远程服务器并通过本地代理的命令示例:

ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1087 %h %p" root@service.com
  • -o ProxyCommand="nc -X 5 -x 127.0.0.1:1087 %h %p":此部分设置了 ProxyCommand,使用 nc 命令作为代理程序,并通过本地代理服务器连接到远程服务器。
  • root@service.com:替换为您要连接的远程服务器的用户名和地址。

3. 连接远程服务器

执行上述命令后,SSH 将通过本地代理服务器连接到远程服务器 service.com,并使用您提供的用户名作为 root 用户进行认证。

内存压缩技术 zSwap, zRAM, zCache。

内存压缩技术:zSwap、zRAM 和 zCache

2025-01-14T12:08:11.png
在优化系统性能时,内存管理是一个关键方面。zSwap 和 zRAM 是两种常用的内存压缩技术,它们能够提高系统在低内存条件下的响应能力。

zSwap

  • 工作原理:zSwap 作为一个压缩的 RAM 缓存工作,与交换设备协同运作。当系统需要使用交换空间时,zSwap 将页面压缩后存储在内存中,而不是直接写入慢速的存储设备。这种方式可以减少 I/O 操作,提高内存使用效率。
  • 配置:zSwap 不需要大量的用户空间配置,操作相对简单,适合大多数用户。

zRAM

  • 工作原理:zRAM 创建一个压缩的块设备,直接在内存中存储数据。这使得系统可以将未使用的页面压缩并存储在 RAM 中,从而减少对交换设备的依赖。
  • 特点:zRAM 可以在没有交换设备的情况下运行,适合对内存使用有高要求的环境,如嵌入式系统。

zCache

  • 工作原理:zCache 是一种更为先进的缓存机制,旨在通过减少对磁盘的访问来加速系统性能。它会将内存中的数据压缩并保留在高速缓存中,进一步提升响应速度。
  • 使用场景:zCache 通常用于需要频繁访问相同数据的应用程序中,可以显著降低延迟。

zSwapzRAM 都是有效的内存压缩技术,适用于不同的使用场景。通过合理配置这些技术,用户可以在资源有限的情况下提升系统性能,确保更流畅的操作体验。zCache 则提供了更进一步的优化,适合对性能要求极高的应用。选择合适的技术,可以显著改善系统的整体表现。

地址 : https://wiki.archlinux.org/title/Improving_performance#zram_or_zswap

">