在Chrome和Safari(以及可能的其他基于Webkit的浏览器)中,即使在div失去焦点之后,仍然可以输入一个可信的div.
我构建了一个简单的例子来说明这个问题:http://jsfiddle.net/yfcsU/3/
该示例有两个元素:一个div contenteditable="true"和一个链接,当点击它时会触发contenteditable div上的模糊事件.
单击链接时,contenteditable div会失去焦点,但您仍然可以键入div,任何按键都会使其重新聚焦.
这种行为在Firefox中按预期工作方式不同:单击该链接将导致contenteditable div停止接受输入.
在Webkit中,有没有办法强制contenteditable div停止接受输入后失去焦点而不禁用div上的contenteditable?
我正在构建一个多租户Laravel应用程序(在Laravel 5.3上),它允许每个租户为任何支持的Laravel设置拥有自己的一组配置.这是通过Application使用我自己的实现覆盖默认Laravel 来实现的,该实现提供了自定义配置加载器(覆盖默认值Illuminate\Foundation\Bootstrap\LoadConfiguration).应用程序在引导程序中从环境(PHP $_ENV或.env文件)中检测当前承租人,然后为检测到的承租人加载相应的配置文件.
上述方法适用于HTTP和控制台内核,其中每个请求/命令的生命周期都有限,但我不确定如何接近队列工作程序.我希望为所有租户都有一个队列工作器,并且我已经实现了一个自定义队列连接器,以便在安排队列作业时添加其他元数据,以便在工作人员收到租户时识别租户.
我正在寻求帮助的部分是如何在隔离环境中运行每个队列作业,我可以使用自定义配置进行引导.
我看到的一些可能的解决方案是:
运行作为守护程序运行的自定义队列工作程序并从队列中获取作业,但在单独的PHP进程中执行作业(通过创建exec()); 一旦作业被执行,工作人员收集结果(状态,例外等)并完成父进程中的作业(例如删除作业等)
与上面类似,但是在单独的PHP线程中运行作业而不是使用单独的进程 RunKit Sandbox
实现一个解决方案,一旦收到队列作业,"重新启动"应用程序(例如,重新加载当前租户的配置,重置任何已解析的依赖关系等)
重要的是,我希望这个多租户作业执行对于作业本身是透明的,这样那些不适合在多租户环境中运行的作业(例如来自Laravel Scout等第三方软件包的作业)可以是没有任何修改处理.
有关如何处理此问题的任何建议?