小编cal*_*hiz的帖子

为什么 windows 上的 safari、chrome 或 firefox 不支持 `cursor:context-menu`?但它是通过 IE9 和 Opera 实现的吗?

此页面说 IE9 和 Opera 11.6 支持 Windows 上的上下文菜单光标,但我知道 Chrome、Safari 和 Firefox 不支持 Windows 上的上下文菜单光标,它只在这些浏览器中显示常规箭头。

我根本不明白为什么他们不支持该光标。它将非常有用,尤其是当 Mac 上的浏览​​器支持它时。

其目的是当您希望用户知道您已在元素上放置了特殊功能时,当您在该元素上使用上下文菜单触发器时,该功能将被激活。对于 Windows,这是右键单击。(最有可能调出自定义上下文菜单)

显然,网络上的所有内容都有上下文菜单,您可以右键单击页面上的任意位置,然后将出现通用上下文菜单。不过,这个光标适用于当您将自己的特殊功能放在通过右键单击激活的元素上时(以及任何 Mac 具有的 - 上下文菜单键?)

有谁知道为什么这三种浏览器在 Windows 上不支持,但在 Mac 上这三种浏览器却支持?

css safari firefox google-chrome mouse-cursor

7
推荐指数
1
解决办法
4840
查看次数

尝试在断开连接的端口上发布消息

我一直在遵循机消息传递指南,但现在我陷入了停滞。Firefox 上的开发者控制台一直给我同样的错误:“尝试在断开连接的端口上发布消息”以及之前的“Webconsole 上下文已更改”。

在此输入图像描述

我检查了注册表, ping_pong 注册表项位于正确的位置, HKEY_LOCAL_MACHINE\\SOFTWARE\\Mozilla\\NativeMessagingHosts\\ping_pong并且它的值指向我的 manifest.json 文件的位置。

我的扩展 ID 和"allowed_extensions"匹配。

我发现了这个,它确实在最后停止了,说我在批处理文件中没有 python 脚本,但这不应该是我的错误消息的原因。

我有 Firefox Quantum 61.0.2,如果有用的话。

我究竟做错了什么?

firefox json

7
推荐指数
1
解决办法
7582
查看次数

Flow LifeCycle 是否识别为 LiveData?

我们知道LiveData 具有生命周期感知能力,如果配置发生更改,LiveData 对象不会每次都从数据库(本地/远程)重新查询,并且仅当数据有任何更新时才会更新。

最近我开始使用Kotlin Flow,我应该承认它最适合数据层,即在存储库中实现,以便通知 ViewModel。但我也在 ViewModel/View 层中使用了Kotlin Flow,以便直接根据其状态collect(密封类实现)来确定Fragment 中的 Flow 对象。我在使用 Flow 时遇到的问题是每次配置更改时都会从数据库(本地/远程)检索数据。

这种情况应该怎么办?有没有办法在使用 Flow 时避免重新查询,或者我应该只在 ViewModel/View 层中使用 LiveData?

示例代码

sealed class Status<T> {
class Processing<T> : Status<T>()
data class Completed<T>(val value: T) : Status<T>()
data class Error<T>(val error: String) : Status<T>()

companion object {
    fun <T> processing() = Processing<T>()
    fun <T> completed(value: T) = Completed(value)
    fun <T> error(error: String) = Error<T>(error)
    }
}
Run Code Online (Sandbox Code Playgroud)

回购协议:

class Repo(database: LocalDatabase){
     fun retrieveUsersData() …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-livedata kotlin-flow

7
推荐指数
2
解决办法
5120
查看次数

系列数组更改后,React 顶点图表不会呈现

你会在这篇文章中找到答案

我是 React 新手,我使用了 apexcharts,它工作得很好,但是当我必须在同一个项目中的其他组件中使用这个图表组件时。这就是我在图表中遇到问题的地方。突然间,当系列发生变化时,我的图表开始不再更新。我花了一周的时间找出问题所在,并认为我可以在这里分享它,以便有人可以更早地找到此修复程序。

所以我发现了两件事;

  1. React-apexcharts 只是 apexcharts 的包装,每个图表都应该有一个您在选项中定义的唯一图表 id。因此,如果您想在多个地方使用组件,最好在 props 中接收图表 ID 并将其设置为:
...
this.state = {
      options:  {
        chart: {
          id: props.chartId,
...
Run Code Online (Sandbox Code Playgroud)
  1. 我们可以通过在componentDidMount()UseEffect()中使用全局 apexcharts 方法来调用方法来渲染图表或覆盖图表的系列数组,例如,
import apexchart from "apexcharts";
...
  componentDidUpdate(){
    const {chartId, seriesData} = this.props;
    //here it overrides the chart series with seriesData from props
    apexchart.exec(chartId,'updateSeries', seriesData);
  };
...
Run Code Online (Sandbox Code Playgroud)

我们可以从 apexcharts 中使用其他许多有用的方法,如文档中所述:https ://apexcharts.com/docs/methods/

我希望有人觉得它有帮助。

谢谢。

charts reactjs apexcharts

7
推荐指数
0
解决办法
4411
查看次数

如何创建一个没有 android 和 iOS 构建文件夹、仅用于 Web 构建的 flutter 项目?

我想创建一个 flutter 项目,但我不想包含 android 和 iOS 版本的构建文件夹和功能。

我怎样才能使其仅通过网络构建来创建?

cross-platform flutter flutter-web

7
推荐指数
3
解决办法
4264
查看次数

ESLint:解析错误:意外的标记:

大家好,我正在将我的 vue3 项目从 js 迁移到 typescript,我遇到了这个问题:

在此输入图像描述

这是我在 .vue 文件中的代码

<script setup lang="ts">
const toto = (msg: string) => {
  console.log(msg)
}
</script>
Run Code Online (Sandbox Code Playgroud)

这是我的 eslintrc.js

module.exports = {
  'env': {
    'browser': true,
    'es2021': true
  },
  'extends': [
    'eslint:recommended',
    'plugin:vue/vue3-essential'
  ],
  'parserOptions': {
    'ecmaVersion': 13,
    'sourceType': 'module'
  },
  'plugins': [
    'vue'
  ],
  'rules': {
    'vue/multi-word-component-names': 'off',
    'vue/object-curly-spacing': [2, 'always'],
    'vue/html-closing-bracket-spacing': [2, {
      'selfClosingTag': 'always'
    }],
    'vue/max-attributes-per-line': [2, {
      'singleline': {
        'max': 1
      },
      'multiline': {
        'max': 1
      }
    }],
    'semi': [2, 'never'] …
Run Code Online (Sandbox Code Playgroud)

typescript eslint vue.js vuejs3

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

PGAdmin 从显式选择的表创建 ERD?

我有能力从整个数据库生成 ERD。我的数据库很大,我想专注于表关系的子集。PGAdmin 支持吗?

postgresql erd pgadmin

7
推荐指数
1
解决办法
1954
查看次数

如何限制并行 api 请求

问题是我有一个 API 任务列表,但问题是我无法同时从我的端点到服务器访问超过 3 个 API(这是服务器限制,它不会响应同一请求的 URL,该 URL 具有更多处理中调用的 API 数量少于 3 个)。因此,我找到了一种方法来完成此任务,但我知道有一种更好的方法,但对如何做没有任何线索,但我找到了一个简单的解决方案,即依次点击 API 并等待响应,然后点击另一个,但这需要太多时间

更优化的解决方案如果N = 3,那么我将同时执行taskList中的'task1','task2'和'task3'。一旦任务 2 完成,您就可以执行“任务 4”,依此类推。这是我想要在不使用任何库的情况下实现的解决方案。

const taskList = [
  "task1",
  "task2",
  "task3",
  "task4",
  "task5",
  "task6",
  "task7",
  "task8",
  "task9",
  "task10",
];

const dummyAPICalled = (task) => {
  console.log(task, "started");
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      console.log(task, "ended");
      resolve(true);
    }, Math.random() * 20000);
  });
};
Run Code Online (Sandbox Code Playgroud)

依次点击调用的API并等待响应。

for await (const task of taskList) {
    await dummyAPICalled(task);
}
Run Code Online (Sandbox Code Playgroud)

同时并行访问所有 API,但由于服务器要求而未得到响应

const promises = taskList.map((task) => …
Run Code Online (Sandbox Code Playgroud)

javascript concurrency multithreading

7
推荐指数
1
解决办法
1282
查看次数

切换 增强指针精度

我们基本上是在创建一个控制面板小程序。我们需要在鼠标属性中切换“增强指针精度”。
为此,我们需要SystemParametersInfo调用SPI_GETMOUSE. 它有一个包含 3 个元素的数组作为其第三个参数。我是 PInvoke 的新手,我尝试过很多签名,但到目前为止还没有成功。这是我为签名所做的尝试:

[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, [MarshalAs(UnmanagedType.LPArray)] ref long[] vparam, SPIF fWinIni);  

static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref long[] vparam, SPIF fWinIni);
Run Code Online (Sandbox Code Playgroud)

上述方法都不适合我,这是我遇到的异常::
System.AccessViolationException尝试读取或写入受保护的内存。这通常表明其他内存已损坏。
在搜索时我想出了这个用VB编写的。

解决方案:感谢GWLlosa 的回答,我想出了解决方案

[DllImport("user32.dll", EntryPoint = "SystemParametersInfo", SetLastError = true)]
public static extern bool SystemParametersInfoGet(uint action, uint param, IntPtr vparam, SPIF fWinIni);
public const UInt32 SPI_GETMOUSE = 0x0003;
[DllImport("user32.dll", …
Run Code Online (Sandbox Code Playgroud)

c# pinvoke marshalling mouse-cursor

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

不同版本之间 Git 合并的最佳实践

想象一下,我们使用Gitflow,从中分离出一个发布分支develop,最终将合并到 和maindevelop。只有release质量的改进。其中大多数需要部署到集成阶段,因此它们的版本有多个pom.xml(多模块),并且package.json在分支上更新和标记release

上面develop有针对未来版本的常规(不稳定)功能开发,并且版本已相应设置。有时,来自 的改进release会合并回develop. 我们会遇到合并冲突,在下图中用 X 标记。

main     ----------------------o----
                              /
release        o---o-----o-o-o
              /     \     \   \
develop  ----o---o---x--o--x-o-x----
                           ^
               we are here |
Run Code Online (Sandbox Code Playgroud)

例子:

  • 上的release版本号是1.0.0-SNAPSHOT
  • 上的develop版本号是1.1.0-SNAPSHOT分支之后的。
  • 新功能进入develop,版本号保持不变。
  • 中的版本release偶尔会增加(并标记)为1.0.11.0.21.0.3
  • 现在,当我想将版本 1.0.x 合并到 1.1.0 而共同祖先是 1.0.0 时, 当然会发生冲突。
    • (我们完全理解那里发生的事情,不需要解释。)
$ git …
Run Code Online (Sandbox Code Playgroud)

git merge release version merge-conflict-resolution

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