问题标签 [deferred-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.

0 投票
1 回答
165 浏览

javascript - 在非 WebKit 浏览器中延迟 JavaScript 执行

我正在尝试 Ryan Fioravanti 的延迟 JavaScript 执行的整洁技术。他在 Google I/O 上的演示文稿的幻灯片 27幻灯片 28 对此进行了描述。

在 WebKit 浏览器中,它工作得很好,提供了比仅仅将script标签放在页面底部或使用async属性更好的结果。

但是,它在 Firefox 或 IE 中不起作用。我可以在 Firebug 中看到脚本被插入到 DOM 中,但我也可以在 Firebug 中看到脚本本身从未被执行。

外部脚本<script src="..."></script>(如 <script>//inline code goes here</script>.

有没有人让这种技术在非 WebKit 浏览器中工作?

这是复制问题的相关源代码:

0 投票
2 回答
70 浏览

linq - 对延期执行的质疑

假设我有这个:

我在 StructsTemp 上编写了 n 个查询,以便它从数据库中填充,依此类推。后来,我执行它们调用.ToList()

如果以后我这样做呢?

它会重新执行 StructsTemp 上的 n 个查询吗?这会重新执行 StructsTemp.ToList() 吗?这会重新执行 StructsFinal 上的所有查询吗?

0 投票
4 回答
1199 浏览

javascript - 延迟函数直到 $ 可用

出于性能原因,雅虎建议在 HTML 页面的底部加载脚本。我使用符合规则的 HTML5 样板。

这种方法的问题是 jQuery 也在底部加载。如果由于某种原因我需要编写包含 jQuery 代码的内联 javascript,我不能,因为$在命名空间中尚不可用。

例如,galeria.js(jQuery 图像库引擎)会发生这种情况,它需要以下标记:

设置高度的代码#gallery不起作用,因为稍后会加载 jQuery。Firebug 控制台提供:

在命名空间中找到符号之前是否有任何暗示执行<script>块的提示?$

0 投票
1 回答
114 浏览

c# - 延迟执行与延迟**数据源**评估

我是延迟执行和所有爵士乐的忠实粉丝,但现在我遇到了稍微不同的问题。

考虑以下第一个简单的进程监视器实现,它简单地显示当前机器上运行的所有进程,按 StartTime 排序:

(注意:这Eval.TryEvalOrDefault<T>(Func<T> f)只是我用来评估可能引发异常并返回的东西的辅助方法default(T))。

现在的问题是,数据源只被评估一次,正是在查询形成时。

是的,我知道,我可以将这个查询定义包装在一个不断重新创建它的方法中,但我认为你可以理解我的意思是获得某种巧妙的技巧来评估数据 -源动态,每次执行查询时。

0 投票
1 回答
979 浏览

return - C++中的延迟执行策略

我有一个回调实现,其中未知的第三方在我的代码中调用函数指针。

但是,许多语言中的一个问题是在函数返回后触发代码。例如,当调用回调并且我必须删除调用对象(并且在这种情况下,重新初始化它)时,从回调返回会导致异常。

假设我不能挂钩并且我不拥有/不能修改调用回调的代码,那么在函数返回后执行代码的最佳方式是什么?

我能想到的唯一真正的方法是设置某种状态机并让工作线程检查状态。但是,我预见到的问题是竞争条件,在重置回调返回和调用对象被重置之间调用回调。

是否有任何我不知道的功能,或者这是实现这种结果的最有效方法?

0 投票
2 回答
12736 浏览

c# - 何时使用 LINQ 的 .ToList() 或 .ToArray()

运行此代码后:

然后'first1 == first2'评估为假,即使两个U都包装相同的T。我还没有测试过,但我认为可以通过链接.ToList()或.ToArray()来评估为真到 Select() 调用上。

在实际代码中,这比这个简单的插图要复杂得多,在决定是否应该附加 .ToList() 或 .ToArray() 时,有什么好的经验法则?我最初的想法是任何可能被多次迭代的引用表达式,或者为了更安全,以防潜在的迭代不明显,任何结果永远不会改变的引用表达式。

0 投票
1 回答
644 浏览

jquery-deferred - jQuery - 延迟等待一系列 ajax 请求以完成甚至失败

在多个 ajax 请求都完成后,无论它们是成功还是错误,如何执行一个函数?

我一直在尝试用来$.when.apply(this, array)传递延迟的 jqXHR 对象数组。但是就像文档说的那样

在其中一个 Deferred 被拒绝的多 Deferred 情况下,jQuery.when 立即 >为其主 Deferred 触发 failCallbacks。请注意,某些 Deferreds 可能仍然>未解决。

如何利用 jQuery 延迟对象始终等待所有 ajax 调用完成?

也许我应该创建自己的延迟来包装所有其他延迟?如果是这样,我不太清楚如何设置。

0 投票
0 回答
120 浏览

jakarta-ee - 将 MDB 执行推迟到特定的日期/时间

我有一个在 WebLogic 10.3.5 上运行的 Java EE 5 MDB 驱动的 JMS 系统,用于通过电子邮件/IM/SMS 发送通知。我需要指定一个发布公告的日期/时间窗口。

据我所知,没有选项可以在某个日期/时间传递/执行 JMS 消息。

我的公告列表在一个 DB 表中,所以目前我有一个 EJB 3.0 Timer Bean,它每 2 分钟轮询一次表,并将消息发送到 JMS 队列以获取该窗口中的新公告。

它可以工作,但我不喜欢 DB 表轮询是系统中的一个关键点,它不会像 JMS 部分那样根据需求进行扩展。我对表的状态列进行了分区,但即使这样,在两个日期执行 BETWEEN 也不会随着数据的增长而很好地扩展。

人们能否提出一个可扩展的解决方案,让我放弃表轮询,只在创建公告时创建 JMS 消息,将它们的执行推迟到指定的日期/时间?至关重要的是,延迟执行应该是持久的,在服务器重新启动后仍然存在,并在服务器重新启动时自动继续“等待”执行。

0 投票
2 回答
2214 浏览

linq - 这种扩展方法是否有效地实现了我的 IQueryable?

所以我最近发现你可以通过指定扩展方法而不是表达式Func<T, TResult>来强制实体框架不要将你的投影转换为 SQL。.Select()当您想要转换查询的数据时,这很有用,但这种转换应该发生在您的代码中而不是数据库中。

例如,当使用 EF5 的新 Enum 支持并尝试将其投影到 DTO 中的字符串属性时,这会失败:

这会起作用:

因为在第一种(表达式)情况下,EF 无法弄清楚如何将 Status.ToString() 转换为 SQL 数据库可以执行的操作,但是根据这篇文章Func 谓词不会被翻译。

一旦我完成了这项工作,创建以下扩展方法并没有太大的飞跃:

所以我的问题是 - 使用它时有什么我应该警惕的陷阱吗?是否存在性能影响 - 要么将此无操作投影注入查询管道,要么导致 EF 不将.Where()子句发送到服务器,从而通过线路发送所有结果?

目的是仍然使用一种.Where()方法来过滤服务器上的结果,然后使用.Materialize()before.Select()以便提供程序不会尝试将投影转换为 SQL Server:

0 投票
2 回答
1806 浏览

c# - 试图在 Windows 窗体应用程序中读取或写入受保护的内存

作为前言,我查看了通过搜索此错误(其中 25 个左右)匹配的每个 StackOverflow 问题,但似乎都没有解决我遇到的问题。

我正在构建一个继承自 System.Windows.Form 的 PermissionsDialog。在调用的方法中,dialogPermissions.ShowDialog()我从数据库中检索一些 Role 对象并将它们加载到几个 ListBox 中。那工作得很好,但现在我需要使用这个伪代码过程覆盖我添加到列表框中的角色对象的属性之一:

  • 遍历角色列表
  • 使用从配置文件列表中查找匹配项List<T>.Find()
  • 在个人资料上查找属性
  • 建立一个新的角色并根据需要设置名称属性
  • 将角色添加到 PermissionsDialog 的角色列表

所有这一切都很顺利,但是当我调用dialogPermissions.ShowDialog()底层框架代码时会抛出 AccessViolationException。

这是我认为相关的代码:

我怀疑这在某种程度上是一个延迟执行问题,但ToList()在调用之前通过调用 dialogData.AllRoles来触发执行ShowDialog()并不能解决问题。当我用常量字符串替换 profile.DisplayName 时,我没有收到错误消息。

任何线索在这里的封面下发生了什么,或者如何找出正在发生的事情,或者如何以不同的方式解决问题以便我可以避免它?欢迎所有建议;-)

结论

所以这是实际的问题,我认为:

将 Role 的 Name 属性设置为 null 就可以了,但是当对话框尝试从 Role 创建 ListBoxItem 并将 Role.Name 属性用于 ListBoxItem 的 Content 属性(它是一个 Object)时,这不能设置为 null 并在构建对话框的框架代码中抛出。检查以确保我在那里有一个值可以解决问题。

似乎抛出一个奇怪的异常,但你有它......