小编Sco*_*pey的帖子

使用Adobe Reader 10.0在Internet Explorer中无法打开PDF文件 - 用户将获得一个空灰色屏幕.如何为我的用户解决此问题?

使用Adobe Reader X(版本10.0.*)在Internet Explorer(v 6,7,8,9)中打开PDF存在一个已知问题.浏览器窗口加载一个空的灰色屏幕(甚至没有Reader工具栏).它适用于Firefox,Chrome或Adobe Reader 10.1.*.

我发现了几个解决方法.例如,点击"刷新"将正确加载文档.升级到Adobe Reader 10.1.*,或降级到9.*,也解决了这个问题.
但是,所有这些解决方案都要求用户弄明白.我的大多数用户在看到这个灰色屏幕时非常困惑,最终指责PDF文件并指责网站被破坏.老实说,在我研究这个问题之前,我也责备了PDF!

所以,我试图找到一种方法来解决我的用户的这个问题.
我考虑过提供一个"下载PDF"链接(将Content-Disposition标题设置为attachment而不是inline),但我的公司根本不喜欢这个解决方案,因为我们真的希望这些PDF文件能够在浏览器中显示.

还有其他人遇到过这个问题吗?

有哪些可能的解决方案或解决方法?

我真的希望找到一个与最终用户无缝的解决方案,因为我不能依赖它们来了解如何更改其Adobe Reader设置,或者自动安装更新.

这是可怕的灰色屏幕:
编辑:截图已从文件服务器中删除!抱歉!
该图像是一个浏览器窗口,带有常规工具栏,但是背景为灰色背景,没有任何UI.

背景信息:
虽然我不认为以下信息与我的问题有关,但我会将其包含在内以供参考:
这是一个ASP.NET MVC应用程序,并且提供了jQuery.
PDF文件的链接已target=_blank在新窗口中打开.
PDF文件正在即时生成,并且所有内容标题都已正确设置.URL不包含.pdf扩展名,但我们会content-disposition使用有效的.pdf文件名和inline设置来设置标头.

编辑:这是我用来提供PDF文件的源代码.

首先,控制器行动:

public ActionResult ComplianceCertificate(int id){
    byte[] pdfBytes = ComplianceBusiness.GetCertificate(id);
    return new PdfResult(pdfBytes, false, "Compliance Certificate {0}.pdf", id);
}
Run Code Online (Sandbox Code Playgroud)

这是ActionResult(PdfResult,继承System.Web.Mvc.FileContentResult):

using System.Net.Mime;
using System.Web.Mvc;
/// <summary>
/// …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc internet-explorer adobe-reader

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

如果表单未通过验证,密码字段是否应保留其值?

我有一个带有两个密码字段的典型注册表单.

<form>
    <%= Html.TextBox("Email", null) %>

    <%= Html.Password("password", null) %>
    <%= Html.Password("confirmPassword", null) %>

    <input type='submit' />
</form>
Run Code Online (Sandbox Code Playgroud)

如果表单未通过验证并重新显示,则文本字段将保留其值,但密码字段始终为空.

为什么密码字段不能保留其值? 更重要的是,我有什么理由不应该覆盖这种行为吗?

我觉得这种行为会降低可用性,并且更喜欢密码字段的行为方式与文本框字段相同 - 在验证错误存在时保留输入的值.

我正在使用ASP.NET MVC,但这个问题更多地涉及可用性和安全性.我明白我所看到的是预期的行为,并且看一下这个Password(...)方法就会明白我明确地忽略了它的价值ModelState.

html c# passwords validation asp.net-mvc

27
推荐指数
2
解决办法
6545
查看次数

我可以在调试时"跳过"jQuery代码吗?

在单步执行使用jQuery的脚本时,我只想测试我编写的代码.我不想进入jQuery文件 - 我不是在调试jQuery,只是我自己的文件.

有没有办法告诉调试器不要进入jQuery文件?我使用Visual Studio + Internet Explorer以及Firefox + Firebug来逐步执行代码......两者似乎都喜欢介绍几十个jQuery语句.

例如,假设我有一个这样的脚本:

$("div").each(function() {
   $(this).hide();
});
Run Code Online (Sandbox Code Playgroud)

这在技术上是单个语句 - 因此"Step Over"将立即执行所有代码,这将跳过内部"hide"语句.但是,"Step Into"会将我带到jQuery代码,在将它带到"hide"语句之前,我必须先执行几十行代码.

我想让调试器完全忽略jQuery代码,所以我可以轻松地单步执行自己的代码,而不是单步执行jQuery代码.

在C#中,可以通过在类上使用[DebuggerStepThrough()]属性来实现.但这对JavaScript没有帮助.

javascript firefox jquery firebug visual-studio

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

"jQuery.event.special"API(用于自定义事件)的文档在哪里?

我创建了一个叉textchangejQuery插件,它使用jQuery.event.specialAPI来创建自己的自定义事件(textchange,hastext,和notext).

我要疯了试图找到文档$.event.specialAPI!我搜索了jQuery的网站,发现没有提到special功能.我发现有几个博客谈论API,甚至引用了它的链接,但该页面根本没有谈论它.

有人可以指点我这个"特殊"API的一些文档吗?我主要对jQuery的文档感兴趣,因为我想知道这个API的"官方"来源.

更新:

我查看了jQuery的源代码,他们将$.event.specialAPI用于某些事件(包括readyhover),所以它显然不像我之前想象的那样过时.

javascript jquery jquery-plugins

15
推荐指数
2
解决办法
4981
查看次数

在Oracle SQL中执行MERGE时,如何更新SOURCE中不匹配的行?

我有一个main数据库和report数据库,我需要从同步表mainreport.

但是,当一个项目在main数据库中被删除时,我只想IsDeletedreport数据库中设置一个标志.

这样做的优雅方式是什么?

我目前正在使用MERGE语句,如下所示:

MERGE INTO report.TEST target
USING (SELECT * FROM main.TEST) source
   ON (target.ID = source.ID)
WHEN MATCHED THEN
    UPDATE SET (target... = source...)
WHEN NOT MATCHED THEN
    INSERT (...) VALUES (source...)
;
Run Code Online (Sandbox Code Playgroud)

WHEN NOT MATCHED语句为我提供了所有新值main,但我也希望更新所有OLD值report.

我正在使用Oracle PL/SQL.

sql oracle sql-merge

14
推荐指数
3
解决办法
11万
查看次数

设计灵活高效的问答系统

我一直在研究一个动态的问答系统,但是我在为这个系统创建一个高效灵活的设计时遇到了麻烦.我很想知道是否有既定的设计模式或任何设计该系统的建议.

我想做什么

我有一系列问题.在回答之后,将显示另一组问题,具体取决于前一组的答案.这个重复,直到不再需要问题为止.

问题的答案都是布尔值,多项选择或数字.

重要的是,大多数问题仅在满足一组特定标准时显示,并基于之前的答案.
我需要标准来支持主要的布尔逻辑,例如And,Or,Not,Equals,Greater Than和Less Than.

举例来说,假设我已经收到答案的问题,如Age,GenderState.
接下来的问题之一是In School?,但只有在以下情况下才能显示:Age < 30 AND Gender=Male AND (State = CA OR State = NY)

有没有人听说过类似的设计模式?你会如何处理这种设计?


背景资料

我试过数据库专栏

起初,我们只有3个初始问题,因此我们只使用3列来过滤第二组问题.

但是,我们的业务需求不断增长,我们开始需要更多初始问题,添加更多列,并在这些过滤器中添加更多逻辑.

这很快变得太僵硬和麻烦.

我尝试过Logic Interpreter

我们第二次尝试使系统更加灵活:将过滤逻辑存储为JavaScript,并运行JavaScript解释器来过滤结果.

这对于灵活性非常有效,但是从数据库中检索数千行并解释脚本的效率极低,并且对于生产执行效果太差.

我试过混合动力车

我们最终将这两种方法结合起来,并提出了一些可行的方法.
我们首先根据几个硬编码的数据库列过滤我们的列表,然后使用JavaScript解释器进一步过滤列表.

这种混合系统仍有许多缺点:

  • 逻辑在两个不同的系统中(SQL数据库逻辑和JavaScript解释器)
  • 解释JavaScript很慢,并且对于所需的简单布尔逻辑可能有点过分
  • 系统很难维护,特别是因为JavaScript逻辑必须始终由开发人员编写.

我真的很想听听如何改进这种设计的建议.

其他信息

我的数据库是MS SQL Server,后端是.NET C#,JavaScript解释器是JINT.UI实现并不重要,但它是一个支持AJAX的网站,用于询问和回答这些问题.

c# sql database-design design-patterns

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

单数/复数单词的本地化 - 语法数字的不同语言规则是什么?

我一直在开发一个.NET字符串格式库来协助应用程序的本地化.它被称为SmartFormat,在GitHub上是开源的.

它试图解决的一个问题是语法数字.这也被称为"单数和复数形式"或"条件格式",这里有一个英文版的片段:

var message = "There {0:is|are} {0} {0:item|items} remaining";

// You can use the Smart.Format method just like using String.Format:
var output = Smart.Format(CultureInfo.CurrentUICulture, message, items.Count);
Run Code Online (Sandbox Code Playgroud)

我相信英国的规则是,有2种形式(单数和复数)可以应用于名词,动词和形容词.如果数量是1单数,则使用,否则使用复数.

我现在正试图通过实施其他语言的正确规则来"开阔视野"!我已经明白,某些语言最多可以包含4种复数形式,并且需要一些逻辑来确定正确的形式.我想扩展我的代码以适应多种语言.例如,我听说俄语,波兰语和土耳其语的规则与英语完全不同,所以这可能是一个很好的起点.

但是,我只会说英语和西班牙语,那么如何确定许多常用语言的正确语法规则呢?

编辑:我也想知道我的单元测试的一些好的非英语"测试短语":什么是一些非常好的非英语短语,有单数和复数形式可用于测试国际化和本地化库?

.net c# string.format localization internationalization

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

有哪些优秀的非英语短语有单数和复数形式可用于测试国际化和本地化库?

我一直在研究.NET库来协助应用程序的国际化.它是用C#编写的,名为SmartFormat,在GitHub上是开源的.

它包含多种语言的语法数字规则,可根据模板和语言环境确定正确的单数/复数形式.规则是从Unicode语言复数规则获得的.

翻译具有依赖于数量的单词的短语(例如名词,动词和形容词)时,指定多个表单,格式化程序根据这些规则选择正确的表单.

英语示例:(注意语法几乎相同String.Format)

var message = "There {0:is:are} {0} {0:item:items} remaining.";
var output = Smart.Format(culture, message, items.Count);
Run Code Online (Sandbox Code Playgroud)

我想为许多支持的语言编写单元测试.但是,我只会说英语和西班牙语(两者都有相同的语法编号规则).

有哪些优秀的非英语测试用语可以用于这些单元测试? 我正在寻找类似的短语"There {0:is:are} {0} {0:item:items} remaining.".请注意此示例如何根据数量需要特定的动词和名词.

关于语法的说明:

此库查找:分隔的单词,并根据为语言环境定义的规则选择正确的单词.例如,在波兰语中,"文件"一词有3种复数形式:1"plik",2-4"pliki",5-21"plików".因此,您将在格式字符串中指定所有3个表单:"{0} {0:plik:pliki:plików}".

这些单词通常按从最小可能值到最大值排序,例如"{0:zero:one:two:few:many:other}",由Unicode语言复数规则定义.

这里已经讨论了有关此代码的其他信息:单数/复数单词的本地化 - 语法数字的不同语言规则是什么?

.net c# localization string-formatting internationalization

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

如何消除"估计剩余时间"(和ETA)计算中的"抖动"?

我有一个应用程序,在执行后台任务时,显示一个进度条,其中包含"估计剩余时间"计算(例如"剩余5秒")和"估计完成时间"(例如"在12:59:59完成" "),或者我称之为ETA.

用于计算此ETA的算法基本上采用随时间推移的"滚动平均值":
1.每个进度事件被添加到具有当前时间的队列中.
2.在一定持续时间(例如10秒)之后,从队列中移除项目.
3. ETA是从队列中的第一个和最后一个项目推断出来的.
如果您关心,源代码可用:ETACalculator.cs

但是,存在抖动问题.随着每个进度事件被添加到计算中,ETA将稍微更新.让我们说ETA只是改变了0.1s.这种小抖动很容易导致ETA"颤动".例如,我没有看到5s,4s,3s等的平滑进展,而是看到了5-5-5-4-5-4-5-4-4-4-4-4.

我只想把更新减少到每秒1次,但是进度条不太顺畅,而且我真的希望"实际"减速能够实时显示.

我遇到了一个简单的算法,可以减少这种跳跃的抖动.如何消除抖动?

.net c# progress

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

如何浏览SQL数据库中的数据,包括外表?

我想知道是否存在任何工具来探索关系数据库中的数据,以及钻取主 - 细节关系.

我已经知道如何在单个表中查看数据,并且我知道如何构造JOIN表的SQL查询.但是,为了获得更深层次的N级,我必须编写一个SQL语句,找到我感兴趣的项目的ID,然后重复N次.结果可视化非常繁琐且难以实现.

但是,我想知道是否有一个工具可以让我查看表中的数据,如果有外键,让我展开数据以显示外来数据.希望能让我深入了解各个层面的细节.

有这样的工具吗?

我正在使用MS SQL,并使用SQL Server Management Studio来执行SQL.

sql sql-server ssms

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