问题
我可以成功完成以下步骤,但UI可能无法响应2 MB或更多的文件.这些文件的大小范围可以是用户从相机或桌面上传的内容,因此我需要处理它们.
用户使用标准文件输入HTML元素上传文件:
<input class="cancel" type="file" name="userFile" id="userFile" accept="image/*"/>
在客户端,我调整文件的大小,使宽度为500px或更小(特别是减少大文件的图像大小)并显示图像.
在客户端,我上传调整大小的较小文件.
演示
看到这个小提琴.
在那里你可以看到-上传较大文件时停止移动.Chrome中的延迟似乎比Firefox更重要,但在Firefox上仍然显而易见.
阻塞的原因
在img src上设置文件数据URL时.这是必需的,以便可以在画布中调整图像大小.
img.src = e.target.result;//blocking here
当img被写入画布时.这是调整图像大小所必需的.
ctx.drawImage( img, 0, 0, width, height );//blocking here
我考虑过的选项
在Web Worker中执行阻止操作.这是不可能的,因为Web Workers无法操作DOM元素,并且在操作DOM时都会发生阻塞调用.
调整Web Worker中的原始图像数据的大小.不幸的是,我不知道img的格式是什么,所以调整大小需要处理所有图像类型.我不知道任何JavaScript库会这样做,我不特别想编写自己的跨格式图像压缩库.
直接调整img的大小,但这不会更改需要上载的基础数据大小.
在服务器上调整大小不是一个选项,因为我想减少上传大小.在客户端上调整大小也更好,因为大图像的内存会提前释放,并且会立即显示调整大小的图像.
其他想法
我知道设置img src是异步的,所以我猜这是复制导致阻塞的数据.我想知道是否有办法共享相同的数据而不是复制?
我正在使用我认为是FileReader用于获取数据URL 的标准方法,然后将数据URL设置为a img.src并canvas.drawImage调整大小(有很多这样的示例,其中一个在这里).任何有助于提高这种方法或其他方法的响应能力的帮助都将受到赞赏.
摘要
Kafka的文档和代码注释表明,当生产者设置acks设置all为时,只有当所有同步副本都赶上时,ack才会被发送给生产者,但代码(Partition.Scala,checkEnoughReplicasReachOffset)似乎表明ack已发送一旦最小的同步复制品赶上了.
细节
kafka文档有这个:
acks = all这意味着领导者将等待完整的同步副本集以确认记录. 资源
另外,查看Kafka源代码 - partition.scala checkEnoughReplicasReachOffset()有以下评论(强调我的):
请注意,只有在requiredAcks = -1时才会调用此方法,并且在我们确认生成请求之前,我们正在等待ISR中的所有副本完全捕获到与此生成请求相对应的(本地)领导者的偏移量.
最后,关于Stack Overflow的这个答案(再次强调我的)
此同步最小同步副本设置指定了分区保持可用于写入时需要同步的最小副本数.当生产者指定ack(-1/all config)时,它仍将等待来自所有同步副本的 ack(与min in-sync副本的设置无关).
但是当我查看Partition.Scala中的代码时(注意minIsr < curInSyncReplicas.size):
def checkEnoughReplicasReachOffset(requiredOffset: Long): (Boolean, Errors) = {
...
val minIsr = leaderReplica.log.get.config.minInSyncReplicas
if (leaderReplica.highWatermark.messageOffset >= requiredOffset) {
if (minIsr <= curInSyncReplicas.size)
(true, Errors.NONE)
Run Code Online (Sandbox Code Playgroud)
调用它的代码返回ack:
if (error != Errors.NONE || hasEnough) {
status.acksPending = false
status.responseStatus.error = …Run Code Online (Sandbox Code Playgroud) 问题
是否可以在包含常用 ASP.NET Framework 中间件的 ASP.NET Framework (4.6.1) 应用程序中使用包含 ASP.NET Core 中间件的 .NET Standard 库。从而无需将 ASP.NET Core 托管(Kestrel 等)安装到 IIS 服务器。
我已经看过这个答案和链接
设想
部署到 IIS 的现有面向 .NET Framework 4.6.1 的 ASP.NET Web API。这是在 ASP.NET Core 之前编写的,包含 owin 中间件。就像是:
public class Startup
{
public void Configuration(IAppBuilder app)// namespace Owin
{
app.UseMyAwesomeMiddleware();
}
}
Run Code Online (Sandbox Code Playgroud)
我想使用一个针对 .NET Standard 的 ASP.NET Core 库。该库包含 ASP.NET Core 中间件。因此示例应用程序启动类类似于:
public class Startup
{
public void Configure(IApplicationBuilder app) //Namespace Microsoft.AspNetCore.Builder
{
app.UseAwesomeLibMiddleware();
}
}
Run Code Online (Sandbox Code Playgroud)
动机
如果这是可能的,那么理论上可以将该库包含到现有的 ASP.NET …
Windows Azure网站显示一个红色感叹号,当我将鼠标悬停在感叹号上时,我看到"门户网站无法加载此资源类型的管理数据".我无法点击网站添加新网站.我能够管理其他天蓝色资源,例如云服务.
关于可能导致这种情况以及如何纠正的任何想法都会很棒.
编辑:我已经尝试过CTRL + F5,F5,退出并重新登录并在24小时后再次尝试并且不同的浏览器仍然会出现问题.
Kafka 引入了 rack-id 以在整个机架出现故障时提供冗余功能。有一个最小同步副本设置来指定在生产者收到确认之前需要同步的最小副本数(-1 / 所有配置)。有一个不干净的leader选举设置来指定一个leader在不同步时是否可以被选举。
因此,鉴于以下场景:
旨在至少进行一次消息传递、节点冗余和对机架故障的容忍。
是否有可能在某个时刻两个同步副本都来自机架 1,因此生产者收到 ack 并且此时机架 1 崩溃(在机架 2 的任何副本同步之前)?这意味着机架 2 将只包含不干净的副本,并且没有生产者能够将消息添加到分区,基本上是停止。副本将是不干净的,因此在任何情况下都无法选出新的领导者。
我的分析是否正确,或者是否有什么东西可以确保形成最小同步副本的副本必须来自不同的机架?
由于同一机架上的副本具有较低的延迟,因此上述情况似乎是合理的。
该场景如下图所示:
Selenium WebDriver:2.35.FireFox:25.0
我想将鼠标移到div上,这将导致隐藏的图像变得可见,然后单击图像.我已经在这里,这里,这里和其他人阅读了这些帖子.一般的答案是做一些形式的事情:
action.moveToElement(we).moveToElement(webdriver.findElement(By.xpath("/expression-here")).click().build().perform();
Run Code Online (Sandbox Code Playgroud)
但是,这在以下示例中不起作用:
HTML:
<div id="bb_testDiv">
<img class="bb_matchImgTest bb_standardHidden" src='@Url.Content( "~/images/match.png" )' alt='Match'/>
</div>
Run Code Online (Sandbox Code Playgroud)
使用Javascript/jQuery的:
$( document ).on( 'hover', '#bb_testDiv', function ()
{
$( this ).find( '.bb_matchImgTest' ).toggleClass( 'bb_standardHidden' );
} )
$( document ).on( 'click', '.bb_matchImgTest', function ()
{
alert('here');
} )
Run Code Online (Sandbox Code Playgroud)
CSS:
.bb_standardHidden
{
visibility:hidden;
}
Run Code Online (Sandbox Code Playgroud)
C#测试代码:
IWebElement testDiv = WebDriver.FindElement( By.Id( "bb_testDiv" ) );
Actions builder = new Actions( WebDriver );
Actions hoverClick = builder.MoveToElement( testDiv ).MoveToElement( testDiv.FindElement( By.ClassName( …Run Code Online (Sandbox Code Playgroud) apache-kafka ×2
azure ×2
c# ×2
asp.net ×1
asp.net-core ×1
html5 ×1
html5-canvas ×1
javascript ×1
jquery ×1
selenium ×1