首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Response.outputstream.write vs Response.BinaryWrite

Response.outputstream.write vs Response.BinaryWrite
EN

Stack Overflow用户
提问于 2018-06-05 00:54:11
回答 2查看 1.9K关注 0票数 0

我们使用下面的代码来使用Response.BinaryWrite显示PDF文件。我们正在探索新的选择,以优化用户性能。

代码语言:javascript
复制
        Response.Clear();
        Response.ContentType = "application/pdf";

        if (Page.Request!=null && Page.Request.Browser!=null && 
            (!(Page.Request.Browser.Type.Contains("IE") || Page.Request.Browser.Type.Contains("InternetExplorer"))))
        {
            Response.AddHeader("Content-Length", buffer.Length.ToString());
        }

        Response.AddHeader("Content-Encoding", "deflate");
        if (Request.Browser.Browser == "IE" && Request.Browser.MajorVersion < 7)
            Response.AddHeader("Content-Disposition", "attachment; filename=document.pdf");            
        Response.OutputStream.Write(buffer, 0, buffer.Length);//Response.BinaryWrite(buffer);
        Response.End();
        Response.Flush();
        Response.Close();

我读到Response.outputstream.write是另一种渲染PDF的方法。使用Response.outputstream.write会有什么额外的好处吗?

EN

回答 2

Stack Overflow用户

发布于 2018-06-05 01:30:25

不,它不会有任何优势。BinaryWrite的代码只是在OutputStream上调用Write,就像您已经在做的那样:

代码语言:javascript
复制
public void BinaryWrite(byte[] buffer)
{
  this.OutputStream.Write(buffer, 0, buffer.Length);
}

使用像DotPeek这样的工具,你可以直接进入编译后的代码,看看它在做什么,,这就是我在这个例子中做的。JetBrains上的DotPeek是免费的。

这可以帮助你自己研究这些东西,而不是猜测、测试或询问。

票数 0
EN

Stack Overflow用户

发布于 2018-12-03 09:05:03

如果遇到渲染延迟,可以实现异步方法并使用以下代码:

代码语言:javascript
复制
var result = Response.OutputStream.BeginWrite(buffer, 0, BufferedStream.Length, null, null);
Response.OutputStream.EndWrite(result);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50685390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档