小编Mou*_*gip的帖子

图像渲染"清晰边缘"与"像素化"

根据MDN,CSS image-rendering属性的当前建议值是auto,crisp-edgespixelated.但是我看不出它们之间的区别crisp-edges,pixelated因为两者都应该只是放大像素而不是内插任何东西.

那么,有什么区别?

html css image-rendering

14
推荐指数
3
解决办法
5227
查看次数

在Chrome中观看元素大小

所以Chrome 显然有一个错误,MutationObserver当手动调整元素大小时,观察元素大小的错误无效.

在修复错误之前,我应该使用什么来代替或者除此之外还能在Chrome中使用它?我应该使用已弃用的变异事件还是有另一种更好的选择?

有没有办法在不使用元素对象的情况下在AngularJS中做到这一点?

javascript google-chrome angularjs mutation-observers

8
推荐指数
1
解决办法
3511
查看次数

JavaScript模块和Web应用程序插件

我维护一个(PHP)Web应用程序,该应用程序由一个应用程序核心和几个可以添加到该核心的插件组成。应用程序的每个实例可以具有一组自定义的插件,具体取决于实例的目的。应用程序核心和插件在各自的存储库中开发。

如果安装了插件,则会将其JavaScript注入前端的模板中。可能如下所示:

<script src="core.min.js"></script>
<script src="plugin-1.min.js"></script>
<script src="plugin-2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

该顺序很重要,因为一个插件可能会使用核心或先前注入的另一个插件中的资源。当前,这种资源共享在全局范围内被实现为单个变量,该变量收集由核心和插件“导出”的资源。在插件中,可以通过以下全局变量访问和使用资源:

var resource = myapp.core.resource;
Run Code Online (Sandbox Code Playgroud)

现在我的问题是否有一种方法可以使用ES6模块(使用Webpack或类似的东西)实现上述内核/插件架构?我想使用一种更现代的方式来开发JavaScript甚至使用TypeScript,但是我不知道是否可以做到这一点。我了解,可以从插件中的核心JavaScript导入一些资源,但是也不能将其编译到插件的JavaScript文件中吗?这将重复代码。


澄清:

核心应用程序和插件是在单独的存储库中开发的,例如:

core/src/main.js
plugin-1/src/main.js
plugin-2/src/main.js
Run Code Online (Sandbox Code Playgroud)

每个存储库的代码都独立构建在PHP包中。最终的应用程序实例包括应用程序核心和几个作为PHP软件包安装的插件。安装PHP软件包时,不会重建JavaScript。

我可以在这样的插件中从应用程序核心导入一些资源:

core/src/main.js
plugin-1/src/main.js
plugin-2/src/main.js
Run Code Online (Sandbox Code Playgroud)

但是,这将重复应用程序核心的代码,因为核心和插件是分别构建的。

我要问的是,是否有可能创建一个“知道”核心和插件之间共享变量的构建配置。例如,如果我Main在核心中定义一个类,则可以将其内置到全局变量中myapp.core.Main。如果我随后导入Main其中一个插件,则可以解析为使用变量myapp.core.Main。这就是当前实现的工作方式,但是都是手动定义的。也许像Webpack这样的现代构建工具有一种更聪明的方法。

javascript webpack es6-modules

5
推荐指数
1
解决办法
133
查看次数

如果没有数据传输,PHP流超时

我目前正在实现一个PHP类,它获取图像文件并在本地缓存它们.这些图像可能来自其他本地来源,通过HTTP或使用Guzzle客户端通过HTTP.使用PHP流包装器,我应该能够以相同的方式处理所有源.

如果没有数据通过流传输,我现在要做的就是实现超时.这应该处理以下情况:

  1. 首先无法建立流.这可能应该在fopen通话时处理,而不是超时.
  2. 流已建立,但未传输任何数据.
  3. 建立流,传输数据但在传输过程中停止一段时间.

我想我可以做到这一切,stream_set_timeout但我不太清楚这实际上是做什么的.如果流上的任何操作花费的时间超过允许的时间,那么超时是否适用,即我可以做一些需要0.5秒并且超时为0.75秒的事情?或者仅在没有数据通过流传输的时间超过允许时间时才适用?

我尝试使用这个简短的脚本测试行为:

<?php

$in = fopen('https://reqres.in/api/users?delay=5', 'r');
$out = fopen('out', 'w');

stream_set_timeout($in, 1);
stream_copy_to_stream($in, $out);

var_dump(stream_get_meta_data($in)['timed_out']);
Run Code Online (Sandbox Code Playgroud)

虽然响应时间reqres.in延迟了5秒,但总是会false超时1秒.请有人解释一下吗?

php php-stream-wrappers

4
推荐指数
1
解决办法
722
查看次数

使用 ANTLR4 解析公式

我正在尝试使用 ANTLR4 将数学公式解析为 LaTeX 的子集。例如它应该解析(a+4)/(b*10)\frac{a+4}{b\cdot 10}.

我的简单语法创建了一个这样的树:

蚂蚁树

现在我正在尝试实现解析树侦听器,以在遍历树时以某种方式构造 LaTeX 字符串。在这里,我失败了,因为构造一个像\frac{}{}它必须递归构建的字符串。然而,解析树遍历器一个接一个地访问树节点(据我所知,以广度优先的方式)。

我已经阅读了可能是我需要的解析树访问者。但是我无法找到一些如何应用这些访问者的示例。

您能否举例说明在这种特殊情况下如何使用解析树侦听器/访问器?您认为我首先将 ANTLR 用于解析器的方法有意义吗?

java parsing antlr antlr4

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