我正在使用此代码对ReaderWriterLock进行非常愚蠢的基准测试,其中读取的次数比写入次数多4倍:
class Program
{
static void Main()
{
ISynchro[] test = { new Locked(), new RWLocked() };
Stopwatch sw = new Stopwatch();
foreach ( var isynchro in test )
{
sw.Reset();
sw.Start();
Thread w1 = new Thread( new ParameterizedThreadStart( WriteThread ) );
w1.Start( isynchro );
Thread w2 = new Thread( new ParameterizedThreadStart( WriteThread ) );
w2.Start( isynchro );
Thread r1 = new Thread( new ParameterizedThreadStart( ReadThread ) );
r1.Start( isynchro );
Thread r2 = new Thread( new ParameterizedThreadStart( ReadThread ) …
Run Code Online (Sandbox Code Playgroud) 我在一个指令中工作,我在使用参数element
按类名查找其子节点时遇到问题.
.directive("ngScrollList", function(){
return {
restrict: 'AE',
link: function($scope, element, attrs, controller) {
var scrollable = element.find('div.list-scrollable');
...
}
};
})
Run Code Online (Sandbox Code Playgroud)
我可以通过标签名称找到它,但它无法通过类名找到它,我在控制台中可以看到:
element.find('div')
[<div class=?"list-viewport">?…?</div>?,<div class=?"list-scrollable">?…?</div>?]
element.find('div.list-scrollable')
[]
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?我知道我可以添加jQuery,但我想知道这是不是一个矫枉过正....
我正在尝试创建一个表格,其中每一行都是一个表格.我希望每个输入都在不同的表格中,但我仍然需要它,例如,所有第一个输入都属于同一个表头,依此类推.
我要做的是一个可编辑的网格,或多或少这个:
<table>
<tr>
<form method="GET" action="whatever">
<td><input type="text"/></td>
<td><input type="text"/></td>
</form>
</tr>
<tr>
<form method="GET" action="whatever">
<td><input type="text"/></td>
<td><input type="text"/></td>
</form>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
但显然我无法以这种方式安排标签(或者w3c验证器所说的那样).
有什么好办法吗?
如果HTTP响应返回Expires和max-age指示哪一个使用?
Cache-Control: max-age=3600
Expires: Tue, 15 May 2008 07:19:00 GMT
Run Code Online (Sandbox Code Playgroud)
考虑到每个人都指的是不同的时间点.
我有反CRSF MVC机制的问题.cookie和返回的表单输入不匹配.我每次都会收到一个错误,只在一个特定的页面中.在应用程序的其余部分,它运行良好.
服务器正在返回HTTP 500 Internal Server Error
,我可以在日志中看到此异常:
[System.Web.Mvc.HttpAntiForgeryException]:{"未提供所需的防伪标记或无效."}
这是服务器生成的隐藏输入:
<input name="__RequestVerificationToken" type="hidden" value="QK8P7rjyZE6Vm5seY7Fr704YCOoFGdTIMzl1W7R0ZFpXSMjGKLG2T05DfFSYTxvtQCEx7DDT69DGsDB2+ZXFHY8oAjiKz0gw8BhDFywgmfIpoXnGpj7fONNzIIfvbrDrE9WJsMu6Io/0bDLM5WfKs0zktiNjyOWpfYrmnfINYmjW8NLOZFoz74xTcgTptAld">
Run Code Online (Sandbox Code Playgroud)
这是Cookie返回:
Set-Cookie:__RequestVerificationToken_L2VGbG93=skmTAVI8HCbfxDS+xhioIMIISL3UOBI7qJM1JbHjTtAqKl4W70pDUcTKMm0p3R3mrHDziE8vXw0C0OO4HArzWO1/e6py+v/cFdbe9maFgjl4jMiZ9Wc4YIhC6+IUXkk6yqJDJ8dCIr8qtGaYcD9IX+m7/SlVhu521KQSWJYRcaY=; path=/; HttpOnly
Run Code Online (Sandbox Code Playgroud)
当我检查服务器发送的内容时,cookie完全相同,但我认为有效负载具有不同的编码:
__RequestVerificationToken:QK8P7rjyZE6Vm5seY7Fr704YCOoFGdTIMzl1W7R0ZFpXSMjGKLG2T05DfFSYTxvtQCEx7DDT69DGsDB2%2BZXFHY8oAjiKz0gw8BhDFywgmfIpoXnGpj7fONNzIIfvbrDrE9WJsMu6Io%2F0bDLM5WfKs0zktiNjyOWpfYrmnfINYmjW8NLOZFoz74xTcgTptAld
Run Code Online (Sandbox Code Playgroud)
区别在于两个出现编码的字符:
/ -> %2F
+ -> %2B
Run Code Online (Sandbox Code Playgroud)
这些是我在隐藏输入字段和后有效负载之间可以找到的唯一差异.
什么可能是导致ValidateAntiForgeryToken
验证令牌失败的问题?
问候.
我没有找到Cache-Control:no-store
和之间的实际区别Cache-Control:no-cache
.
据我所知,这no-store
意味着不允许缓存设备缓存该响应.另一方面,no-cache
意味着不允许缓存设备提供缓存响应,而不首先使用源验证它.但那个验证是什么?有条件的?
如果答案有no-cache
,但它没有Last-Modified
或ETag
?
问候.
我刚刚阅读了" 容量计划的艺术"(BTW,我喜欢它),其中作者解释了衡量服务,找出最高限度,预测需求,确保轻松部署等方面的重要性等.但通过这本书,他解释了他在Flickr的经历,他不得不面对同样的产品.
很多我们,我们在我们面向其他公司的中小型项目规模的公司工作.我们必须了解他们的业务,他们的需求,计划架构,模型等等.
然后,客户说"我需要支持1000个用户".那么,每秒有多少请求是用户?他们的会议有多长?他们传输了多少数据?他们执行哪些操作?他们有多久了?
有时可以知道这些数字(监控他们现有的应用程序或因为他们已经完成了测量),有时候这是不可能的(因为他们没有当前的网站,或者只是可能知道).
你如何猜测服务器,带宽,存储等的数量......你使用哪些参考数据?
问候.
我有一个用一个值初始化的下拉列表.当用户单击它时,将删除单个元素并添加一个新元素,说"正在加载",然后向服务器发出AJAX调用,并在返回时将新值添加到控件中.
问题是控件在更新时保持打开状态,我想关闭它.
这是一个例子:http://jsfiddle.net/vtortola/CGuBk/2/
该示例的AJAX可能不会获取数据,因为我在调用jsfiddle api时遇到了错误,但它显示了SELECT
更新期间保持打开状态的方式.
我想知道如何以编程方式关闭下拉列表而不关注另一个输入.
在使用FormsAuthentication配置的一个应用程序中,当用户访问没有auth cookie或过时的访问受保护页面时,ASP.NET会发出HTTP 401 Unauthorized,然后FormsAuthentication模块在请求结束前拦截此响应,并将其更改为HTTP 302 Found,设置HTTP标头"Location:/ path/loginurl"以便将用户代理重定向到登录页面,然后浏览器转到该页面并检索登录页面,该页面未受保护,获取HTTP 200好的.
当AJAX没有被考虑时,这确实是一个非常好的主意.
现在我在我的应用程序中有一个返回JSON数据的URL,它需要用户进行身份验证.一切运作良好,问题是如果auth cookie到期,当我的客户端代码调用服务器时,它将获得HTTP 200 OK和登录页面的html,而不是HTTP 401 Unauthorized(因为之前解释过).然后我的客户端试图将登录页面html解析为json,并失败.
那么问题是:如何应对来自客户端的过期身份验证?应对这种情况的最优雅解决方案是什么?我需要知道调用何时成功,我想使用HTTP语义来实现.
是否可以以安全的跨浏览器方式从客户端读取自定义HTTP标头?如果请求是AJAX请求,有没有办法告诉FormsAuthenticationModule不执行重定向?有没有办法使用HTTP标头覆盖HTTP状态,就像覆盖HTTP请求方法一样?
我需要Forms身份验证,我想避免重写该模块或编写自己的表单身份验证模块.
问候.
我正在使用ASP.NET HttpHandler进行测试,以便直接在响应流上下载文件,而且我不太确定我的方式.这是一个示例方法,将来文件可以存储在数据库中的BLOB中:
public void GetFile(HttpResponse response)
{
String fileName = "example.iso";
response.ClearHeaders();
response.ClearContent();
response.ContentType = "application/octet-stream";
response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
using (FileStream fs = new FileStream(Path.Combine(HttpContext.Current.Server.MapPath("~/App_Data"), fileName), FileMode.Open))
{
Byte[] buffer = new Byte[4096];
Int32 readed = 0;
while ((readed = fs.Read(buffer, 0, buffer.Length)) > 0)
{
response.OutputStream.Write(buffer, 0, readed);
response.Flush();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我不确定这是否正确或有更好的方法来做到这一点.我的问题是:
很抱歉这么多问题,我在网络开发方面很新:P
干杯.
http ×3
.net ×2
asp.net ×2
c# ×2
html ×2
http-caching ×2
javascript ×2
jquery ×2
ajax ×1
angularjs ×1
asp.net-mvc ×1
caching ×1
csrf ×1
html-select ×1
html-table ×1
http-headers ×1
httpresponse ×1
locking ×1
security ×1
stream ×1
webforms ×1