小编Rod*_*phe的帖子

Javascript递归改进

工作中的某个人开玩笑地发了一封带有html文件的电子邮件,意图使你的浏览器崩溃,如下所示

<html>
<script type="text/javascript">
function crash(){
  for(i=0;i<5000000001;i++){
    document.write(i);
  }
}
</script>
<body onload="crash();">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

无论如何,它并没有在Chrome中做得很好,并且谈话产生了一个友好的竞争,看看谁可以编写javascript以尽可能快地使页数达到5,000,000,000而不会导致浏览器无响应或崩溃.

我想出了以下用于Chrome的javascript.

<html>
<script type="text/javascript">
function countToFiveBillion(counter, num){
  if(num < 5000000000)
  {
    num++;
    if(num % 18700 == 0){
      counter.innerHTML = num;
      setTimeout(function() {countToFiveBillion(counter, num)}, 1);
    } else {
      countToFiveBillion(counter, num);
    }
  }
}
function initiateCountDown()
{
   var counter = document.getElementById("counter");
   var num = +counter.innerHTML;
   countToFiveBillion(counter, num);
}
</script>
<body onload="initiateCountDown();">
<div id="counter">0</div>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

这只会在chrome中运行的原因是我正在使用setTimeout调用来避免在chrome中创建stackoverflow.(Chrome还允许您在所有浏览器中进行递归调用的最大堆栈).

我有什么方法可以更快地计算这个数字吗?我认为我可以在导致溢出之前稍微增加一点数量(虽然小于100)但唯一的规定是必须显示尽可能多的数字.


改进代码:

<html>
<script type="text/javascript">
var counter;
var …
Run Code Online (Sandbox Code Playgroud)

javascript recursion

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

如果不透明度小于1,则透明度不再透明

我有一个32位的PNG,代表一个透明正方形中间的蓝色方块.下面,我用3个不同的不透明度值显示了这个蓝色方块:

从左到右,不透明度为1,0.5和0.1

从左到右,不透明度分别为1,0.5和0.1,如您所见(如果不能,只相信您的Photoshop吸管),蓝色方块周围的区域仅在左侧图像上是透明的.

这是与颜色值相同的图像:

与颜色值相同的图像

我知道它几乎看不见但我想知道是什么原因造成的.再加上一些图像和背景,对比度更加明显.

谢谢!

编辑:这是我的VS解决方案,适合那些想在家里试用的人:http://www.mediafire.com/?gt704e62d53z7ae

silverlight png transparency opacity

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

没有UDF的SQL检查约束

我有以下(虚构)表:

??????????????????????        ??????????????????????
? Course             ?        ? Person             ?
??????????????????????        ??????????????????????
? ID   ? int         ?        ? ID   ? int         ?
? Name ? varchar(50) ?        ? Name ? varchar(50) ?
??????????????????????        ??????????????????????

??????????????????????        ???????????????????????
? Occupation         ?        ? B_Occupation_Person ?
??????????????????????        ???????????????????????
? ID   ? int         ?        ? Person_ID    ? int  ?
? Name ? varchar(50) ?        ? Ocupation_ID ? int  ?
??????????????????????        ???????????????????????

???????????????????
? B_Course_Person ?
???????????????????
? Course_ID ? int ?
? Person_ID ? int ? …
Run Code Online (Sandbox Code Playgroud)

sql data-integrity user-defined-functions check-constraint

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

Windows Azure表存储中的批量删除

我正在尝试删除两个日期之间的所有实体(即2个分区键)WADLogsTable.到目前为止,我发现的最好的代码是这个(来自http://wintellect.com/blogs/jlane/deleting-entities-in-windows-azure-table-storage):

private static void DeleteAllEntitiesInBatches(CloudTable table, Expression<Func<DynamicTableEntity, bool>> filters)
        {
            Action<IEnumerable<DynamicTableEntity>> processor = entities =>
            {
                var batches = new Dictionary<string, TableBatchOperation>();

                foreach (var entity in entities)
                {
                    TableBatchOperation batch = null;

                    if (batches.TryGetValue(entity.PartitionKey, out batch) == false)
                    {
                        batches[entity.PartitionKey] = batch = new TableBatchOperation();
                    }

                    batch.Add(TableOperation.Delete(entity));

                    if (batch.Count == 100)
                    {
                        table.ExecuteBatch(batch);
                        batches[entity.PartitionKey] = new TableBatchOperation();
                    }
                }

                foreach (var batch in batches.Values)
                {
                    if (batch.Count > 0)
                    {
                        table.ExecuteBatch(batch);
                    }
                }
            };

            ProcessEntities(table, processor, …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-table-storage

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

setTimeout 对比 睡眠模式

根据我在几个 SO 答案中的理解,如果计算机在 asetTimeout被调用后进入睡眠模式,则应忽略睡眠期。

例如:

  • 时间: setTimeout(foo, 30000);
  • t0+20s:电脑进入睡眠模式
  • t0+40s:电脑退出睡眠模式
  • t0+50s:foo被调用

但是,我的测试显示以下行为:

  • 时间: setTimeout(foo, 30000);
  • t0+20s:电脑进入睡眠模式
  • t0+40s:计算机退出睡眠模式并被foo调用

我的理解是,当计算机唤醒时,如果在休眠期间会触发超时,则立即触发,否则在t0 + [超时值]时触发。

那么预期的行为是什么?所有浏览器和操作系统都一样吗?

我的一项测试(在 Windows 10 上使用最新版本的 Chrome):https : //codepen.io/robloche/pen/GRJvEJB

javascript settimeout sleep-mode

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

Silverlight工具包命名空间"有时"未知

我使用BusyIndicatorSL Toolkit 5中的控件ChildWindow.

在某些解决方案中,它可以工作但在其他方面,使用完全相同的代码(至少看起来如此),在解析我的ChildWindowXAML 期间,我在运行时遇到以下异常:

未找到"BusyIndi​​cator"类型,因为"http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"是一个未知的命名空间.[线路:59位置:44]

它有时可能有效吗?我浏览了一些论坛并阅读了一些解决方案(清理BinObj文件夹什么也没做)但到目前为止还没有任何工作.

如果我BusyIndicator在代码隐藏中创建我,一切都运行正常.

有人有想法吗?

谢谢.

silverlight namespaces toolkit busyindicator

2
推荐指数
1
解决办法
1568
查看次数