当前流行的浏览器是否有特殊问题缓存我需要注意的*XMLHttpRequest响应?
我希望能够在每个页面上包含XMLHttpRequest查询作为动态加载与页面类型相关的内容(即JSON)或行为(如eval()ed Javascript)的方法,但希望确保资源如果服务器发送了正确的标头,它可以缓存从服务器接收的内容.
我担心阅读这篇文章会提到 Firefox 1.1之类的浏览器不会缓存通过XMLHTTPRequest获取的任何内容,而且它总是会请求新数据完全发送(使用Cache-Control而不是If-Modified-Since),无论标题如何由服务器发送.
显然这篇文章很老 - 我甚至不记得Firefox 1.1; 那么我需要为当前流行的浏览器做些什么呢?当我特意想要缓存响应时,有什么技巧吗?
**为了澄清我的问题,通过缓存,我的意思是客户端缓存,服务器发出新鲜度信息(以Cache-Control形式:max-age指令或Expires:标头),浏览器存储副本缓存中的响应以及到期日期,以便可以从浏览器缓存中满足从后续页面发出的相同资源的未来请求,而根本不需要与服务器进行任何联系.对于大多数内容,所有主流浏览器都能正确执行此操作,但我听说Firefox无法为XMLHttpRequest内容执行此操作.我问的是,如果有人知道任何现代浏览器在使用XMLHttpRequest时根据规范不缓存响应的情况.*
我正在使用PHP从MySQL数据库中提取数据.我能够使用DOM函数构建XML文件.然后使用 echo $dom->saveXML(); ,我能够从AJAX调用返回XML.而不是使用AJAX来获取XML,我如何将XML文件保存到服务器上的某个位置?谢谢
我们有一个非常大的表(> 77M记录和增长)在SQL Server 2005 64位标准版上运行,我们看到一些性能问题.每天添加的记录多达十万条.
有谁知道SQL Server标准版可以处理的记录数量是否有限制?应该考虑转向企业版还是我们可以使用一些技巧?
附加信息:
有问题的表非常扁平(14列),有一个聚簇索引,有6个字段,另外两个索引在单个字段上.
我们使用3个字段添加了第四个索引,这些字段位于一个问题查询中的选择中,并且没有看到估计性能的任何差异(查询是必须在非工作时间运行的流程的一部分,因此我们没有指标然而).这些字段是聚集索引的一部分.
我在Windows上使用Eclipse,使用PyDev插件进行Python开发.当我使用'Run'启动我的应用程序时,它会产生一个新的Python(CPython)实例.当我使用'终止'按钮(红色方块)时,它会终止进程.但是,它似乎执行SIGKILL,因此我的关闭处理程序无法清理.
有没有办法让Eclipse发送SIGTERM,或者从Eclipse控制台模拟键盘中断(ctrl-c)?
注意:我知道还有其他Python IDE,比如Komodo或Wing可以解决这个问题,但我不打算转换它.
MySQL(具体是5.0)有没有办法让auto_increment字段的值基于分组列?
例:
id name group_field
1 test 1
2 test2 1
1 test3 2
2 test4 2
1 test5 3
2 test6 3
Run Code Online (Sandbox Code Playgroud)
我不想通过任何"疯狂"的方法来实现这个目标,但如果有必要的话.
我知道upper()Java和其他框架中有很多方法,比如Apache commons lang,它将String转换为全部大写.
有没有提供任何公共库等的方法isUpper(String s)和isLower(String s)方式,检查在字符串中所有字符都是大写或小写?
编辑:
关于转换为Upper并与之比较的许多好答案.我想我应该更具体一点,并说我已经想到了这一点,但我希望能够使用现有方法.
关于可能在apache.commons.lang.StringUtils中包含此内容的好评.有人甚至提交了一个补丁(20090310).希望我们很快就会看到这一点. https://issues.apache.org/jira/browse/LANG-471
编辑:
我需要这种方法的方法是将有时会全部大写的酒店名称大写.如果它们都是小写或大写,我只想把它们大写.我确实遇到了一些帖子中提到的非字母字符的问题,最后做了类似这样的事情:
private static boolean isAllUpper(String s) {
for(char c : s.toCharArray()) {
if(Character.isLetter(c) && Character.isLowerCase(c)) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这个讨论和不同的解决方案(有不同的问题),清楚地表明在commons.lang中需要一个好的实体isAllUpper(String s)方法.
在那之前,我猜这myString.toUpperCase().equals(myString)是最好的方式.
编辑:我只访问 1 个数据库,但正在创建 DTC 事务。我可以在 DTC 事务列表 GUI(组件服务插件)中看到它。为什么是这样?
\n\n我需要对 1 个数据库执行一个事务(多个插入命令)。
\n\n我应该使用 TransactionScope 还是 IDbTransaction (connection.BeginTransaction)?
\n\nTransactionScope 似乎较新 \xe2\x80\xa6 但它应该只用于两阶段提交吗?
\n\n谢谢
\n请提示我如何将命令行和setup.cfg配置文件中的用户定义参数传递给distutils的setup.py脚本.我想编写一个setup.py脚本,它接受我的包特定参数.例如:
python setup.py install -foo myfoo
Run Code Online (Sandbox Code Playgroud)
谢谢你,
Mher
我一直在与C#2.0中的Project Euler Problem#16搏斗.问题的关键在于你必须计算并迭代一个长度为604位(或那里)的数字中的每个数字.然后,您将这些数字相加以产生答案.
这提出了一个问题:C#2.0 没有可以处理这种计算精度的内置数据类型.我可以使用第三方库,但这会破坏尝试以编程方式解决它而无需外部库的目的.我可以在Perl中解决它; 但是我试图在C#2.0中解决它(我将在下一次项目Euler问题的试运行中尝试使用C#3.0 ).
你有什么建议(不是答案!)来解决C#2.0中的项目Euler#16?有哪些方法可行?
注意:如果您决定发布答案,请在尝试前添加一个在其前面写有### Spoiler的块引用.