问题标签 [conditional-execution]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 这种有条件的javascript加载方法是否具有任何价值?
我正在为 Web 应用程序构建一个多页前端。UI 的 javascript 很少,但我知道会有大量的 javascript 来处理后端,所以我尽我所能保持它尽可能稀疏和有限。
我想在只使用一个缩小的 js 文件时有条件地同步执行 javascript。我有一些全局函数,但大部分代码都是特定于页面的。每个页面在 body 元素中都有页面的 id。例如,about.html 有以下代码<html>...<body id="about">...</body></html>
。
我知道加载 javascript 的各种异步方法,例如require.js
或什至$.getScript
,但由于各种原因,我试图避免使用这种方法。因为我正在预处理 HTML,所以我也不想将脚本分解为每页(尽管我可以),因为它是一个小文件,我不想创建一堆不同的 <script>
标签。我目前的解决方案是有条件地执行每页所需的 javascript,我正在这样做,如下例所示:
在构建过程中,所有的 js 都存储在单独的文件中,因此它看起来不像这里看起来那么笨拙,因为include filename.js
条件的主体内部只有一个。
条件可防止在每一页上执行不必要的代码。但是,当我这样做时,我突然意识到这样做实际上可能没有任何好处。我读到$(window).load
或者$('body').load
事件可能会导致与 冲突$(document).ready
,并且它们都肯定更慢 - 就像window.onload
(我测试过的)一样。我想这将是我解决这个问题的首选方式。我读的是真的吗?和/或,我在做什么有用吗?
vbscript - VBScript - Pass shell command using conditional execution with "choice" command
Not sure this is doable but I'm trying to write the following batch script in a single line:
The above script needs to be passed via the vbs run command into cmd. The following is the closest I can get it:
The above works as expected up until the choice command is reached then the script fails to execute the remainder correctly. Any help in resolving this is very much appreciated.
reactjs - 如何在 React / Preact(又名。零件)
有时我需要创建一个包装元素,该元素将根据自己的逻辑显示其子元素(或不显示),可以选择将它们包装在自己选择的元素中:
这是有效的,因为孩子(“你好”)是静态的。但是,如果要动态计算子级并且仅在条件成立时才可以明确定义,该怎么办?
在这里,如果条件为假并且包装元素不使用其子元素,它们仍将被创建并向下传递,浪费资源并可能在过程中引发错误。
一种解决方案(可能是最好的?)是将内容包装在自己的组件中:
这是因为(AFAIK,如果我错了,请纠正我)InnerContent 的构造函数和渲染将不会被调用,除非 SomeWrapper 实际决定使用它的属性children
。
但是如果我不想为 3 行代码创建一个组件怎么办?
我在野外看到了两种选择,没有一种特别吸引人:
传递一个 thunk 作为唯一的孩子:
/li>传递一个 thunk 作为道具:
/li>
我不喜欢它们,因为 lambda 给代码添加了视觉噪音,更不用说浪费资源了,在每次render()
执行时都会重新创建(AFAIK。)
还有其他我没有看到的解决方案吗?我应该总是使用 InnerContent 元素吗?
assembly - x86-64 的条件跳转是如何工作的?
我在学习 x86-64 时对条件分支感到很困惑。
哪一个是正确的理解?
- 如果 %rax < %rdi,跳转到 L2
- 如果 %rax > %rdi,跳转到 L2
java - 为什么 Java 不优化 |= 分配?
t*()
对于本例,总是返回 true,而 asf*()
总是返回 false。
假设我们有以下表达式
如果是这种情况,JVM 会优化执行并仅执行f1()
,t1()
因为它“理解”无论如何f2()
和t2()
yield,输入 if 语句的要求得到满足,因此不需要进一步的计算。
我正在编写这样的代码:
我的一位同事看到了这一点并提到他不确定,但 Java 可能会优化语句 C 和 D,因为b
总是true
从语句B
开始,这可能会导致一些问题。
我进行了一些测试,似乎所有测试都正确执行(这是所需的行为),但我仍然想知道为什么不进行优化?我认为他可能是对的,JVM 明白一旦b
为真,任何|=
操作都不会改变它的值。
java - 根据条件链接可完成的期货
我有一堆返回 CompletableFuture 的方法,我想以特定方式链接
我正在尝试根据以下规则组合它们,
- 生成 1 到 100 之间的随机数
- 如果是偶数打印
Even
,如果是奇数打印Odd
- 如果该号码甚至
findFactorial
用随机数调用 - 如果数字是奇数,则通过查找最近的偶数
convertToNearestEvenInteger
我不太清楚如何进行条件链接和异常处理。一些示例或代码片段可能会有所帮助。
python - 用于 3.7 PEP 553 之前版本的 python 条件调试断点单线,其作用类似于 Perl 的 $DB::single=1
在 PEP 553breakpoint()
实用程序之前的 python 版本中,添加(理想情况下是单行)代码以具有可以在条件下忽略的断点的推荐方法是什么(例如,全局调试标志或 args.debug 标志)。
在 Perl 中,我习惯使用$DB::single=1;1;
单行,我知道我可以安全地将其留在代码中,并且不会影响正常运行,perl code.pl
除非显式调用perl -d code.pl
. 例如:
如果我将此代码运行为:perl code.pl
,它将运行完成。如果我使用: 运行此代码perl -d code.pl
,pdb
则将在断点行处停止(而不是在带有my $b = 2;
语句的下一行之前),因为它包含1;
语句之后的$DB::single=1;
语句;
同样,如果我写:
然后我可以执行perl -d code.pl
,它将在第一个断点行停止,然后在pdb
会话中,一旦我很高兴它不需要在其他任何地方停止,然后执行:$debug = 0
,然后pdb
继续c
,这将使它不会在第二个或其他处停止代码中的类似断点行。
我怎样才能在python(PEP 553之前的2.x和3.x)中实现相同的目标,理想情况下是单行语句?
我知道 PEP 553,除了必须明确设置PYTHONBREAKPOINT=0 python3.7 code.py
或注释掉这些breakpoint()
行的麻烦之外,它是这里问题的解决方案。
我想到了以下选项:
下面的语句pdb.set_trace()
是为了让我可以在 Perl1;
之后的同一行中实现相同的$DB::single=1;
效果,即让调试器停止我放置断点的位置,而不是下一条语句。这样如果中间有大块的注释代码或文档,调试器就不会跳转到离断点很远的下一条语句。
或使用以下条件:
因此,如果我完成了脚本的调试,我可以设置args.debug=False
或debug=False
不必触及代码中的所有这些断点。
linux - 管道中的失败命令未触发“catch”命令
我正在尝试设置一小段代码,以便如果其中任何一段失败,它将触发另一行代码运行。就像:
但是,第一段中有一个管道,所以:
但是,如果cmd1
失败,cmd3
则不会运行。
如果尝试了以下方法,每次都得到相同的结果:
为了完整起见,这是我正在使用的特定代码块:
到目前为止,它的运行就好像“catch”语句(如果你想这样称呼它)甚至不存在。此外,它的第一部分,特别是在管道之前,是如果它失败它不会抛出错误的部分。我对管道的第二部分没有任何问题,所以我不确定它是否会表现出相同的行为。
提前致谢!
bash - 如何在 bash 中有条件地添加管道元素
我需要形成各种命令的管道。管道的某些元素或元素序列仅在某些条件成立时才相关。现在,我可以写:
但这意味着重复cmd1
and cmd4
,另外,可能有几个条件,我不想写嵌套的 if 。所以,我试着写这个:
但是 - 管道符号没有被解释为使用管道的指令。
我如何让 bash 执行我想要的管道?
注意:您可以假设 bash 版本为 4 或更高版本,但前提是您必须这样做。
javascript - 使用javascript嵌套if语句错误的PDF自动填充
我有一个带有两个输入文本框的 pdf。1.) 项目代码和 2.) 项目
我正在尝试根据“项目代码”填充“项目”,但嵌套语句为我提供了所有情况下第一个 else if 条件的数据。例如,对于代码 5009113,我应该得到“20% 100 ML”,对于代码 5009111,我应该得到“25% 50ML”,依此类推。相反,对于项目代码中的任何和所有值,我都会得到“20% 100ML”。请在这件事上给予我帮助 :)