问题列表 - 第962页

何时在VBA中使用Class?

何时在Visual Basic for Applications(VBA)中使用类是否合适?

我假设加速开发和减少引入错误是大多数支持OOP的语言的常见好处.但是对于VBA,是否有具体的标准?

oop vba class

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

如何强制浏览器重新加载缓存的CSS/JS文件?

我注意到一些浏览器(特别是Firefox和Opera)非常热衷于使用.css.js文件的缓存副本,即使在浏览器会话之间也是如此.当您更新其中一个文件但用户的浏览器继续使用缓存副本时,这会导致问题.

问题是:在更改文件时,强制用户浏览器重新加载文件的最优雅方法是什么?

理想情况下,解决方案不会强制浏览器在每次访问页面时重新加载文件.我会发布自己的解决方案作为答案,但我很好奇,如果有人有更好的解决方案,我会让你的投票决定.

更新:

在这里讨论了一段时间后,我发现John Millikinda5id的建议很有用.事实证明,有一个术语:自动版本控制.

我在下面发布了一个新的答案,它是我原来的解决方案和John的建议的组合.

SCdF建议的另一个想法是将伪造的查询字符串附加到文件中.(一些Python代码自动使用时间戳作为伪造的查询字符串由pi提交.).但是,有一些关于浏览器是否会使用查询字符串缓存文件的讨论.(请记住,我们希望浏览器缓存文件并在以后的访问中使用它.我们只希望它在更改后再次获取文件.)

由于不清楚伪造的查询字符串会发生什么,我不接受这个答案.

javascript css caching auto-versioning

957
推荐指数
26
解决办法
38万
查看次数

保护AJAX应用程序的最佳方式

我目前正在研究基于AJAX的站点的身份验证,并且想知道是否有人对这类事情的最佳实践有任何建议.

我最初的方法是基于cookie的系统.基本上我用一个auth代码设置一个cookie,每个数据访问都改变了cookie.同样,每当验证失败时,该用户的所有会话都被取消验证,以阻止劫持者.要劫持一个会话,有人必须让自己登录,并且黑客需要将最后一次cookie更新发送到欺骗会话.

不幸的是,由于AJAX的性质,当快速发出多个请求时,它们可能会出现故障,将cookie设置错误并打破会话,所以我需要重新实现.

我的想法是:

  • 一种明显不太安全的基于会话的方法
  • 在整个网站上使用SSL(看起来有点矫枉过正)
  • 使用经过ssl身份验证的iFrame进行安全交易(我只是假设这是可能的,只需要一点点jquery黑客攻击)

问题不在于转移的数据,唯一的问题是有人可能会控制不属于他们的帐户.

一种明显不太安全的基于会话的方法

security cookies ajax ssl

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

ASP.NET MVC和Web服务

向我的ASP.NET MVC项目添加Web服务是否打破了MVC的整个概念?

该Web服务(WCF)依赖于我的MVC项目中的Model层与后端进行通信(因此我认为它需要成为MVC解决方案的一部分).

我应该将它添加到Controller或Model层吗?

architecture asp.net asp.net-mvc wcf web-services

48
推荐指数
3
解决办法
5万
查看次数

了解OCAML IDE?

了解OCAML/CAML IDE?特别是在Linux上运行的那个?

linux ide ocaml typerex

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

最好的C/C++网络库

我还没有完成C/C++的工作,只是想知道人们最喜欢的跨平台库是用什么的.

我正在寻找一个好的快速和脏的库以及一个更强大的库.通常这些是两个不同的库,这没关系.

c c++ networking

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

业务对象/数据库访问层的体系结构

由于各种原因,我们正在编写一个新的业务对象/数据存储库.该层的要求之一是分离业务规则的逻辑和实际的数据存储层.

可以有多个数据存储层实现对同一对象的访问 - 例如,实现大多数对象的主"数据库"数据存储源,以及实现User对象的另一个"ldap"源.在这种情况下,用户可以选择来自LDAP源,可能具有稍微不同的功能(例如,无法保存/更新User对象),但是否则应用程序以相同的方式使用它.另一种数据存储类型可能是Web服务或外部数据库.

我们有两种主要方式来实现这一点,而我和同事在基本层面上是不一致的,这是正确的.我想就哪一个最好用的建议.我会尽量保持对每个人的描述尽可能保持中立,因为我在这里寻找一些客观的观点.

  • 业务对象是基类,数据存储对象继承业务对象.客户端代码处理数据存储对象.

    在这种情况下,公共业务规则由每个数据存储对象继承,并且它是客户端代码直接使用的数据存储对象.

    这暗示客户端代码确定将哪个数据存储方法用于给定对象,因为它必须显式地向该类型的对象声明实例.客户端代码需要明确知道它正在使用的每种数据存储类型的连接信息.

    如果数据存储层为给定对象实现不同的功能,则客户端代码在编译时明确地知道它,因为该对象看起来不同.如果更改了数据存储方法,则必须更新客户端代码.

  • 业务对象封装数据存储对象.

    在这种情况下,业务对象由客户端应用程序直接使用.客户端应用程序将基本连接信息传递给业务层.关于给定对象使用哪种数据存储方法的决定是由业务对象代码做出的.连接信息将是从配置文件中获取的一大块数据(客户端应用程序并不真正知道/关心它的详细信息),它可以是数据库的单个连接字符串,也可以是各种数据存储类型的多个连接字符串.还可以从另一个地点读取附加数据存储连接类型 - 例如,数据库中的配置表,其指定各种web服务的URL.

    这里的好处是,如果将新数据存储方法添加到现有对象,则可以在运行时设置配置设置以确定使用哪种方法,并且它对客户端应用程序完全透明.如果给定对象的数据存储方法发生更改,则无需修改客户端应用程序.

  • 业务对象是基类,数据源对象是从业务对象继承的.客户端代码主要处理基类.

    这与第一种方法类似,但客户端代码声明了基本业务对象类型的变量,而业务对象上的Load()/ Create()/ etc静态方法返回了相应的数据源类型对象.

    此解决方案的体系结构与第一种方法类似,但主要区别在于决定哪个数据存储对象用于给定的业务对象是由业务层而不是客户端代码.

我知道现有的ORM库已经提供了一些这样的功能,但请暂时折扣(有可能用这些ORM库之一实现了数据存储层) - 另请注意我故意不告诉你这里使用的是什么语言,除了它是强类型的.

我正在寻找一些关于哪种方法更好用(或随意提出其他建议)的一般建议,以及为什么.

architecture orm

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

如果你失明了,你怎么编程?

视觉是大多数程序员认为理所当然的感官之一.大多数程序员会花几个小时看电脑显示器(特别是在他们在区域的时候),但我知道有盲人程序员(例如目前在谷歌工作的电视拉曼).

如果您是一个盲人(或者慢慢变得盲目),您将如何设置开发环境来帮助您进行编程?

(请回答一个建议.这个问题的目的是将好的想法带到最顶层.此外,屏幕阅读器可以更早地阅读好的想法.)

workflow development-environment accessibility blind

685
推荐指数
19
解决办法
17万
查看次数

对于subversion,我应该如何处理供应商目录?

所以我有一个问题.我检查了我的冷冻宝石和铁轨,即使你不应该这样做.我认为这很容易,反正也不会那么大.好吧,后来我更新了rails并且这样做删除了vendor/rails目录中的所有.svn文件.我听说我真正应该做的就是与svn:externals到我的供应商目录.我到底需要做什么,如果他们不在我的回购中,卡西斯特拉诺仍会使用我的冷冻宝石?如果它不使用我的冷冻宝石,我怎么能正确地重新生成那些.svn文件,因为这再次发生.

谢谢!

svn capistrano ruby-on-rails

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

无法连接到'localhost'上的MySQL服务器(10061)

我最近在Windows 2003上安装了MySQL 5并尝试配置实例.一切正常,直到我"应用安全设置",此时它给了我上面的错误(Can't connect to MySQL server on 'localhost' (10061)).

我的防火墙中有"MySQL服务器"的端口3306异常.

mysql localhost windows-firewall mysql5

64
推荐指数
7
解决办法
45万
查看次数