NPOI是Java POI项目的.NET端口,允许用户读取和写入Microsoft Excel文档(以及其他Office格式).NPOI 1.2.2引入了对"自动调整大小"列的支持,其中列设置为列中最宽单元格条目的宽度.但是,有许多报道说这不起作用.那有可能吗?
我们有一个数据驱动的ASP.NET网站,该网站使用标准模式进行数据缓存(此处从MSDN改编):
public DataTable GetData()
{
string key = "DataTable";
object item = Cache[key] as DataTable;
if((item == null)
{
item = GetDataFromSQL();
Cache.Insert(key, item, null, DateTime.Now.AddSeconds(300), TimeSpan.Zero;
}
return (DataTable)item;
}
Run Code Online (Sandbox Code Playgroud)
这样做的问题是对GetDataFromSQL()的调用是昂贵的,并且该站点的使用相当高.因此,每隔五分钟,当缓存下降时,该站点变得非常"粘滞",而许多请求正在等待检索新数据.
我们真正想要发生的是旧数据保持最新,同时在后台定期重新加载新数据.(有人可能会因此看到的数据为六分钟之前的事实是不是一个大问题-数据不是那个时间敏感的).这是我自己可以写的东西,但知道是否有任何替代缓存引擎(我知道像Velocity,memcache这样的名称)支持这种情况会很有用.或者我错过了标准ASP.NET数据缓存的一些明显技巧?
[这可能不完全是一个编程问题,但它是一个最好由程序员回答的难题。我首先在 Pro Webmasters 网站上尝试过,以压倒性的沉默]
我们的网站上有电子邮件地址验证流程。该站点首先生成一个适当的密钥作为字符串
mykey
Run Code Online (Sandbox Code Playgroud)
然后将该密钥编码为一堆字节
&$dac~?????!
Run Code Online (Sandbox Code Playgroud)
然后 base64 编码那串字节
JiRkYWN+yoyIhIQ==
Run Code Online (Sandbox Code Playgroud)
由于此键将作为要放置在 HTML 电子邮件中的 URL 的查询字符串值给出,因此我们需要先对其进行 URLEncode,然后对结果进行 HTMLEncode,从而为我们提供(示例中 HTMLEncoding 没有效果,但是我懒得重新编写示例)
JiRkYWN%2ByoyIhIQ%3D%3D
Run Code Online (Sandbox Code Playgroud)
然后将其嵌入作为电子邮件的一部分发送的 HTML 中,例如:
click <a href="http://myapp/verify?key=JiRkYWN%2ByoyIhIQ%3D%3D">here</a>.
Or paste <b>http://myapp/verify?key=JiRkYWN%2ByoyIhIQ%3D%3D</b> into your browser.
Run Code Online (Sandbox Code Playgroud)
当接收用户单击链接时,站点会收到请求,提取查询字符串“key”参数的值,base64 对其进行解码、解密,并根据站点逻辑执行相应的操作。
然而,有时我们会有用户报告他们的点击无效。一位这样的用户向我们转发了他发送的电子邮件,经过检查,HTML 已被转换为(根据上面的示例进行说明)
click <a href="http://myapp/verify?key=JiRkYWN+yoyIhIQ%3D%3D">here</a>
Or paste <b>http://myapp/verify?key=JiRkYWN+yoyIhIQ%3D%3D</b> into your browser.
Run Code Online (Sandbox Code Playgroud)
也就是说,%2B 字符串 - 但没有其他百分比编码的字符串 - 已转换为加号。(这肯定给我们留下了正确的值——我已经查看了相应的 SMTP 日志)。
key=JiRkYWN%2ByoyIhIQ%3D%3D
key=JiRkYWN+yoyIhIQ%3D%3D
Run Code Online (Sandbox Code Playgroud)
所以我认为有两种可能性:
我正在做一些愚蠢的事情,我看不到,或者
一些邮件客户端将 %2b 字符串转换为加号,也许是为了应对人们误将 URLEncoding 加号的问题
在 1 的情况下 - 它是什么?在 2 的情况下 - 是否有一种标准的、已知的方法来处理这种情况?
非常感谢您的帮助
我在jQuery可拖动函数中执行了"for"函数.从执行时间的角度来看,有更好的方法吗?我的功能是:
$("#dragger").draggable({
containment: '#timeline',
axis: 'x',
drag: function(event, ui) {
var divs = $("#timeline div.timeline");
for (var i=0, il=divs.length; i<il; i++) {
var layer = '#layer'+i,
gow = layer+"Go";
SelectClosestKeyframes(this, event, ui, $(layer), $(gow));
}
}
});
Run Code Online (Sandbox Code Playgroud)
我可以改善for (var i=0, il=divs.length; i<il; i++)
Thanx 吗?