小编aca*_*lon的帖子

选择文件,设置图像并上传而不阻止UI

问题

我可以成功完成以下步骤,但UI可能无法响应2 MB或更多的文件.这些文件的大小范围可以是用户从相机或桌面上传的内容,因此我需要处理它们.

  1. 用户使用标准文件输入HTML元素上传文件:

    <input class="cancel" type="file" name="userFile" id="userFile" accept="image/*"/>

  2. 在客户端,我调整文件的大小,使宽度为500px或更小(特别是减少大文件的图像大小)并显示图像.

  3. 在客户端,我上传调整大小的较小文件.

演示

看到这个小提琴.

在那里你可以看到-上传较大文件时停止移动.Chrome中的延迟似乎比Firefox更重要,但在Firefox上仍然显而易见.

阻塞的原因

  1. 在img src上设置文件数据URL时.这是必需的,以便可以在画布中调整图像大小.

    img.src = e.target.result;//blocking here

  2. 当img被写入画布时.这是调整图像大小所必需的.

    ctx.drawImage( img, 0, 0, width, height );//blocking here

我考虑过的选项

  1. 在Web Worker中执行阻止操作.这是不可能的,因为Web Workers无法操作DOM元素,并且在操作DOM时都会发生阻塞调用.

  2. 调整Web Worker中的原始图像数据的大小.不幸的是,我不知道img的格式是什么,所以调整大小需要处理所有图像类型.我不知道任何JavaScript库会这样做,我不特别想编写自己的跨格式图像压缩库.

  3. 直接调整img的大小,但这不会更改需要上载的基础数据大小.

  4. 在服务器上调整大小不是一个选项,因为我想减少上传大小.在客户端上调整大小也更好,因为大图像的内存会提前释放,并且会立即显示调整大小的图像.

其他想法

我知道设置img src是异步的,所以我猜这是复制导致阻塞的数据.我想知道是否有办法共享相同的数据而不是复制?

我正在使用我认为是FileReader用于获取数据URL 的标准方法,然后将数据URL设置为a img.srccanvas.drawImage调整大小(有很多这样的示例,其中一个在这里).任何有助于提高这种方法或其他方法的响应能力的帮助都将受到赞赏.

javascript html5 html5-canvas

6
推荐指数
1
解决办法
691
查看次数

无法RDP到azure实例 - 无法联系本地安全机构

每当我尝试通过RDP登录我的azure实例时,我都会收到以下错误:

在此输入图像描述

我已经尝试过,重新启动,重置控制台中的RDP设置(配置远程桌面 - 设置未来的到期日等),我也尝试使用我的本地管理员帐户登录(根据此处此处的建议)并且都没有帮助.在我做一些更激烈的事情之前,比如尝试通过powershell重置我的管理员密码或安装vnc,我想知道是否有人有任何建议.我没有Azure技术支持,因此我不确定Microsoft结算支持是否会有很大帮助.

注意:这是一个云服务VM.

azure

5
推荐指数
2
解决办法
4833
查看次数

kafka ack = all and min-isr

摘要

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)

apache-kafka

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

包含 owin 中间件的 ASP.NET Framework Web API 中的 ASP.NET Core 中间件

问题

是否可以在包含常用 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 …

c# asp.net asp.net-core

5
推荐指数
0
解决办法
3126
查看次数

Windows Azure网站无法使用,并在管理门户中显示红色感叹号

Windows Azure网站显示一个红色感叹号,当我将鼠标悬停在感叹号上时,我看到"门户网站无法加载此资源类型的管理数据".我无法点击网站添加新网站.我能够管理其他天蓝色资源,例如云服务.

关于可能导致这种情况以及如何纠正的任何想法都会很棒.

编辑:我已经尝试过CTRL + F5,F5,退出并重新登录并在24小时后再次尝试并且不同的浏览器仍然会出现问题.

azure

3
推荐指数
2
解决办法
3061
查看次数

Kafka 机架 ID 和最小同步副本

Kafka 引入了 rack-id 以在整个机架出现故障时提供冗余功能。有一个最小同步副本设置来指定在生产者收到确认之前需要同步的最小副本数(-1 / 所有配置)。有一个不干净的leader选举设置来指定一个leader在不同步时是否可以被选举。

因此,鉴于以下场景:

  • 两个机架。机架 1、2。
  • 复制计数为 4。
  • 最小同步副本数 = 2
  • 生产者 ack=-1(全部)。
  • 不洁领导人选举 = false

旨在至少进行一次消息传递、节点冗余和对机架故障的容忍。

是否有可能在某个时刻两个同步副本都来自机架 1,因此生产者收到 ack 并且此时机架 1 崩溃(在机架 2 的任何副本同步之前)?这意味着机架 2 将只包含不干净的副本,并且没有生产者能够将消息添加到分区,基本上是停止。副本将是不干净的,因此在任何情况下都无法选出新的领导者。

我的分析是否正确,或者是否有什么东西可以确保形成最小同步副本的副本必须来自不同的机架?
由于同一机架上的副本具有较低的延迟,因此上述情况似乎是合理的。

该场景如下图所示:

在此处输入图片说明

apache-kafka

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

Selenium WebDriver MoveToElement - 隐藏元素,悬停和toggleClass

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)

c# jquery selenium selenium-webdriver

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