Death Note
注:本文系作者原创,但可随意转载。
***************************************************************************************
使用规则:
- 名字被写入到『Death Note』中的『BUG』会死亡。
- 写名字的时候,如果不在笔记中记录该『BUG』的详细特征,则无效。因此,同名同姓的『BUG』不会一次全部被杀。
- 写完名字后如果在『人间界』单位的 40秒 内写下死因的话,会依其发生。
- 不写死因的『BUG』全部默认为遭到『程序员』以『键盘』击杀。
- 写下死因的同时,更会有 6分40秒 的时间可以记入死亡的详细情况。
- 『Death Note』从落入『人间界』的那一刻起就是属于『程序员』的东西。
- 『Death Note』的持有者可以识别『Death Note』的宿主『死神』的音貌。
- 使用过『Death Note』的『程序员』,既不能升入『天堂』,亦不能堕入『地狱』。
****************************************************************************************
名称:| IE11 与 Chrome v31 在文件上传控件上的差异|
==============================================================================
特征:
ASP.NET MVC 5.O, Web项目中,需要客户上传EXCEL文件,存到WEB服务器的临时目录,处理后进行删除。
// ………………
if (Request.Files.Count != 0)
{
var file = Request.Files[0];
if (file != null && file.ContentLength > 0)
{
var filename = file.FileName;
if (filename.Contains("\\"))
filename = filename.Split('\\').Last();
string filePath = Server.MapPath("~/App_Data/Temp/" + filename);
// ………………
此处,客户点击“上传”按钮后,后台获取文件名。首先获取文件对象file, 然后使用其属性FileName, 此处假定客户上传文件的本地路径是 "C:\\MyDocuments\\Test.excel", 那么在Chrome v31的环境下调试,FileName属性值是Test.excel, 而IE11下, FileName属性的值为 "C://MyDocuments//Test.excel"。 因此,在上面这段代码中,我对FileName做了处理 ,如果其包含"\\",则对其使用Split方法,将其分成字符串数组并取最后一个。
同时,还有另外一个值得一提的是,在ASP.NET MVC下,同一个View中可能包含了其他PartialView,在进行一些操作时,可能会进行Ajax请求Get一些PartialView,但IE11下,貌似只要是Ajax的Get请求全部被缓存了起来,即使重新发起Ajax请求,页面也不会被刷新,这样一来使Ajax的Get方法失去了意义。我认为其缓存的目的是为了提高用户浏览体验及速度,但此处应该是一个失误。在Chrome下不存在此问题。不过我并未在广泛的机器环境下测试,不知道其他人是否也有同样的问题。
================================================================
名称: | 浮点数的不精确性 |
================================================================
特征:
看书的时候发现了一个有趣的问题,过去一直都不晓得。
for ( double i = 0; i != 1.0; i += 0.1)
{
Console.WriteLine(i);
// 同 C++ 中的 cout<<i<<endl;
}
问题就是以上4行代码的输出。
如果没有看书并且亲自测试的话,我会认为是从 0开始,步长0.1, 输出11次,到 1.0结束。
但实际上,这4段代码,会一直从0输出到正无穷。
原因就是,这段代码最终会转为二进制代码进行计算,而二进制代码不能精确的表示0.1,只能精确的表示2的N次幂, 比如0.5。因此如果上述代码的步长改为0.5, 则会依次输出0, 0.5, 1.0。
=================================================================
名称: | 奇妙的delete操作 |
================================================================
特征:

如图,在C++中,初始化一个指向NULL的指针,那么他指向地址00000000。
动态分配内存给该指针,无论是什么类型的指针,指针使用完毕后,进行delete操作。
释放内存后,指针并没有重新指向00000000,而是指向了00008123,此时p!=nullptr, if(p)==true。
如果打印输出*p的值,程序则会出现异常停止工作。
此时,应该将p重新指向nullptr。否则,将使用p将试图进入一个已经释放掉的内存产生异常。
=================================================================
名称: | Asp.Net Web API delete操作 |
================================================================
特征:
以前一直使用Asp.Net MVC但没有使用过Web API, 之前看了angularjs, knockoutjs这些前端MV*框架,感觉非常方便,所以最近的新项目中决定借机使用Asp.Net Web API 2.0 + knockoutjs。
在尝试使用的过程中,GET, POST方法都十分顺畅。但唯独delete操作,一直被提示 error 405 method not allowed。
这个问题我调试了整整一天多。期间各种BING, GOOGLE, BAIDU,大多数说的问题是iis的配置问题,需调整web.config等。
后来我新建一个最小项目实现了delete操作。但将二者的web.config配置成一样的,还是不能解决原项目的问题。
一个BUG一天都解决不了,网上又找不到答案,周围有大神但即便是大神没有经历过这些细节也很难帮你分析出问题所在,简直想砸电脑有木有!
最后,在机缘巧合之下,终于发现。原来是AJAX写法出了问题 0.0。下面上代码:
self.deleteProduct = function(product){
$.ajax({
url: "/api/product",
data: { id: product.id }
type: "delete",
success: function(){
// ....此处省略若干逻辑
},
error: function(){
// ....
}
});
}
错误代码
self.deleteProduct = function(product){
$.ajax({
url: "/api/product/" + product.id,
type: "delete",
success: function(){
// ....此处省略若干逻辑
},
error: function(){
// ....
}
});
}
正确代码
呵呵,这两种写法的区别就是,一个直接把需要传递的参数写进URL里作为URL的一部分,另一个则在data属性中传递,则是作为表单数据的一部分。
原谅我这一生放荡不羁js不精通,这里具体原因就不解释了,估计先记录下这个蛋疼的问题,有机会再深入研究。
=================================================================
名称: | MVC表单之坑 |
================================================================
特征:
坑啊!已经被这个问题坑了估计有三次了吧!不得不记录之!
案例:
假设某网站首页有个登录表单,顶部导航条有个登录按钮,点开弹出模态对话框,异步加载一个登录表单PartialView,也可以进行登录。登录无非就是账号,密码。
那么在首页我们会写一个form, 然后继续写 @Html.TextBoxFor( m=> m.UserName) .... @Html.PasswordFor( m => m.Password) 之类的。
在写另一个模态对话框的时候,打开另一个cshtml文件,其中也有一个表单,也要写 @Html.TextBoxFor( m => m.UserName) ... @Html.PasswordFor( m => m.Password) 之类的。
马蛋。 这种语法写出来的<input id="UserName" ...> <input id="Password"> ,无论是在首页View中还是在模态对话框PartialView中,只要属性名不变,他们ID就是一样的。如果你在首页调用这个模态对话框,那么就会有两个一模一样的input标签,会导致表单提交UserName这个input标签的时候总是提交html全文终最靠前的那一个。这里就需要给他们分别赋值不同的ID.。比如这么写,@Html.TextBoxFor( m => m.UserName, new { id = "index_UserName" })
和@Html.TextBoxFor( m => m.UserName, new { id = "login_UserName" }) 之类的。
这里经常会被疏忽,然后程序又可以正常的运行。不注意的话就会产生BUG -。- 简直蛋碎=、=
=================================================================
Death Note的更多相关文章
- Educational Codeforces Round 48 (Rated for Div. 2)——A. Death Note ##
A. Death Note time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- 【CF1016A】Death Note(签到)
题意:无限页的书,每页可以写m个名字,给你一个长度为n的序列,序列为你每天要写的名字数,输出你每天要翻的页数. n<=2e5,m,a[i]<=1e9 思路: #include<cst ...
- Educational Codeforces Round 48
题目地址 Edu48 A.Death Note 翻译 你有一个无穷页的本子,每一页可以写\(m\)个名字, 你在第\(i\)天要写\(a_i\)个名字,如果这一页恰好写满了,你就会翻页, 问每天的翻页 ...
- 用Python做词云可视化带你分析海贼王、火影和死神三大经典动漫
对于动漫爱好者来说,海贼王.火影.死神三大动漫神作你肯定肯定不陌生了.小编身边很多的同事仍然深爱着这些经典神作,可见"中毒"至深.今天小编利用Python大法带大家分析一下这些神作 ...
- Codeforces Edu Round 48 A-D
A. Death Note 简单模拟,可用\(\%\)和 \(/\)来减少代码量 #include <iostream> #include <cstdio> using nam ...
- 字符串(AC自动机):HDU 5129 Yong Zheng's Death
Yong Zheng's Death Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/O ...
- 三星Note 7停产,原来是吃了流程的亏
三星Note 7发售两个月即成为全球噩梦,从首炸到传言停产仅仅47天.所谓"屋漏偏逢连天雨",相比华为.小米等品牌对其全球市场的挤压.侵蚀,Galaxy Note 7爆炸事件这场连 ...
- 《Note --- Unreal --- MemPro (CONTINUE... ...)》
Mem pro 是一个主要集成内存泄露检测的工具,其具有自身的源码和GUI,在GUI中利用"Launch" button进行加载自己待检测的application,目前支持的平台为 ...
- 《Note --- Unreal 4 --- Sample analyze --- StrategyGame(continue...)》
---------------------------------------------------------------------------------------------------- ...
随机推荐
- Python3 logging模块&ConfigParser模块
''' 博客园 Infi_chu ''' ''' logging模块 该模块是关于日志相关操作的模块 ''' import logging # logging.debug('debug') # log ...
- 开学测试之——ATM
---恢复内容开始--- package ATM; //信1705-2 20173568 李泽宇 import java.util.*; import java.io.File; import ...
- LINQ查询操作符
·First - 返回集合中的第一个元素:不延迟 ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值):不延迟 ·Last - 返回集合中的最后一个元素:不延迟 ·Las ...
- VM打开虚拟机文件报错
用VM打开以前的虚拟机文件报错 Cannot open the disk 'F:/****.vmdk' or one of the snapshot disks it depends on. 这种问题 ...
- JVM运行内存分配和回收
本文来自网易云社区 作者:吕宗胜 Java语言与C语言相比,最大的特点是编程人员无需过多的关心Java的内存分配和回收,因为所有这一切,Java的虚拟机都帮我们实现了.JVM的内存管理,大大降低了开发 ...
- 原生js实现五子棋
为什突然做这个,因为这是个笔试题,拖了一个月才写(最近终于闲了O(∩_∩)O),废话不多说,说说这个题吧 题目要求 编写一个单机[五子棋]游戏,要求如下: 1.使用原生技术实现,兼容 Chrome 浏 ...
- 【赛后补题】(HDU6223) Infinite Fraction Path {2017-ACM/ICPC Shenyang Onsite}
场上第二条卡我队的题目. 题意与分析 按照题意能够生成一个有环的n个点图(每个点有个位数的权值).图上路过n个点显然能够生成一个n位数的序列.求一个最大序列. 这条题目显然是搜索,但是我队在场上(我负 ...
- Chrome 与 Firefox-Dev 的 DevTools
不管是做爬虫还是写 Web App,Chrome 和 Firefox 的 DevTools 都是超常用的,但是经常发现别人的截图有什么字段我找不到,别人的什么功能我的 Chrome 没有,仔细一搜索才 ...
- 【iOS开发】iOS对UIViewController生命周期和属性方法的解析
iOS对UIViewController生命周期和属性方法的解析 一.引言 作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有 ...
- linux基本操作1
ctrl + alt + T 打开命令行 -根目录下home中为用户建的文件夹 cd 加目录名称转到当前目录 .当前目录..上级目录 ls 当前目录下的文件ls -l 显示当前目录下文件的权限 mkd ...