小编Rio*_*ams的帖子

使用jQuery进行简单的屏幕刮擦

我一直在玩使用jQuery的简单屏幕刮板的想法,我想知道以下是否可行.

我有简单的HTML页面,并尝试(如果可能的话)从另一个页面中获取所有列表项的内容,如下所示:

主页:

<!-- jQuery -->
<script type='text/javascript'>
$(document).ready(function(){
$.getJSON("[URL to other page]",
  function(data){

    //Iterate through the <li> inside of the URL's data
    $.each(data.items, function(item){
      $("<li/>").value().appendTo("#data");
    });

  });
});
</script>

<!-- HTML -->
<html>
    <body>
       <div id='data'></div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

其他页面:

//Html
<body>
    <p><b>Items to Scrape</b></p>   
    <ul>
        <li>I want to scrape what is here</li>
        <li>and what is here</li>
        <li>and here as well</li>
        <li>and append it in the main page</li>
    </ul>
</body>
Run Code Online (Sandbox Code Playgroud)

那么,是否可以使用jQuery从外部页面中提取所有列表项内容并将它们附加到div中?

javascript jquery screen-scraping

42
推荐指数
5
解决办法
9万
查看次数

何时在C#中使用'continue'关键字

最近,我正在经历一个开源项目,尽管我已经在.NET中开发了几年,但我之前并没有偶然发现这个continue关键字.

问题:使用continue关键字可以从中受益的最佳做法或领域是什么?有没有理由我以前可能没见过它?

.net c# continue

32
推荐指数
7
解决办法
2万
查看次数

我应该如何使一个clojure STM程序持久化?

我正在编写一个使用STM的clojure程序.目前,我在数据库启动时填充STM(使用refs),然后在dosync事务成功时异步更新数据库.我不知道我是否以正确的方式这样做,或者是否有更好的标准技术来做到这一点.谁能向我解释他们如何在他们的Clojure程序中将STM的ACI属性变成ACID?

clojure stm

17
推荐指数
1
解决办法
3002
查看次数

在数据库中存储文件大小

我目前正在研究一个涉及存储多项研究及其内容细节的系统(一项研究通常可以包含1 <X <~2000个图像).我和我的同事正在讨论在数据库中存储文件大小(特别是图像大小)的最佳方法.

文件大小通常从<1kB到> 20MB.

我们目前正在讨论将图像大小存储为:

# of kilobytes (as an integer value) 
# of bytes (as a large integer value)
# of megabytes (possibly as a decimal value)
Other Options...
Run Code Online (Sandbox Code Playgroud)

我没有处理过大量存储文件的问题,并且想知道实现这个目的的最有效/最实用的方法是什么?

storage database-design filesize

12
推荐指数
3
解决办法
9168
查看次数

处理MVC中的多个角色 - 基于操作的辅助功能

我目前有一个项目,我似乎遇到了关于角色的问题,并认为我会就如何最好地处理问题得到一些意见.

系统将需要可编辑,灵活的角色,不仅可以控制特定区域的访问,还可以控制系统功能的使用(添加用户,编辑用户,查看报告等)

系统当前允许用户拥有多个角色,每个角色都明确定义了访问/操作区域,例如:

  • 角色A可以访问区域1,2,3并且可以添加用户.
  • 角色B可以访问区域1,5,7并且可以修改用户.
  • 角色C可以访问区域4,6并且只能访问查看用户.

所以用户可以在角色A和C中,因此访问:1,2,3,4和6,并且可以添加和查看用户.

我的第一个解决方案是创建一个字典,将所有可能的访问/访问选项区域存储到字典中,如下所示:

Dictionary<string,bool>
Run Code Online (Sandbox Code Playgroud)

然后,当它被实例化时,它从数据库中提取所有属性,然后遍历角色以确定它们是否可访问.

所有这一切目前都运行得很好 - 但是项目非常Javascript/jQuery密集,因此很多这些选项都是由客户端函数调用的.我试图避免必须包含所有这些客户端功能:

<%if(AccessDictionary[key])
     //Enable or Disable Action
<%}%>
Run Code Online (Sandbox Code Playgroud)

所以基本上,我想知道以下事情:

  1. 用户登录后,存储此词典的最佳方法是什么?静态?在会议中?
  2. 什么是最好的存储方法,以便在视图中轻松访问字典?(因为我目前看不到包装我的客户端功能)

任何建议或想法将不胜感激!

c# asp.net dictionary roles asp.net-mvc-2

11
推荐指数
1
解决办法
7014
查看次数

正则表达式| 闰年等等

我最近一直在寻找一个正则表达式来做一些客户端日期检查,但我找不到一个能满足以下条件的表达式:

  • 范围从1800 - 现在
  • 使用闰年执行正确的日期检查
  • MM/DD/YYYY表格
  • 无效的日期检查

(这些限制超出了我的范围,并且是客户的要求,尽管我努力说服他们这不是最好的路线)

当前代码:

$('input').keyup(function()
{
       var regex = /^(?:(0[1-9]|1[012])[\/.](0[1-9]|[12][0-9]|3[01])[\/.](18|19|20)[0-9]{2})$/;
       $(this).toggleClass('invalid',!regex.test($(this).val()));    
});
Run Code Online (Sandbox Code Playgroud)

更新:

我应该注意,这主要是为了看看这样的正则表达式是否可行(因为在这个问题上使用正则表达式不是我的选择).我知道验证日期的其他(和更好的)选项,但是如前所述 - 这是通过正则表达式查看是否可能.

javascript regex datetime

11
推荐指数
3
解决办法
2万
查看次数

使用JSON序列化请求对象

我目前正致力于概念验证,并遇到了一个涉及使用JSON序列化HttpRequest的问题.

背景

我原本以为我可以使用JSON.Encode()方法轻松完成它,如下所示:

JSON.Encode(HttpContext.Request)
Run Code Online (Sandbox Code Playgroud)

但是,我很快发现这会导致抛出各种循环引用(主要是由于Request对象的实际结构和复杂性).这些仅在实际遇到包含循环引用的属性时发生,因为我之前使用以下代码来获取我需要的特定元素:

JSON.Encode(new {HttpContext.Request.Cookies,HttpContext.Request.Headers, ... });
Run Code Online (Sandbox Code Playgroud)

哪个工作得很好.

我只是好奇是否有更好的处理方法(或处理它的最佳方法).我将详细介绍我到目前为止所采取的一些方法,以便找到我可能出错的任何方面.

以前的方法

  • 使用Reflection迭代Request中的每个属性并尝试构造一个JSON字符串"property-by-property".(遇到循环引用时失败)

  • 尝试将每个属性存储在Dictionary对象中,然后使用JSON序列化整个Dictionary(希望它将"展平"对象并使其更容易序列化)

  • 使用JSON.NET库并尝试通过JsonConvert.SerializeObject()方法对其进行序列化(我试图传递几个额外的设置以避免循环引用,但没有任何运气)

我认为我的最新方法(使用JSON.NET库)接近工作,但是我遇到了一个错误,该错误涉及Request中Stream对象的"Timeout"属性.

我并不反对简单地避免序列化Stream对象和循环引用.我只是试图抓住尽可能多的Request对象,同时避免任何这些类型的意外.

c# asp.net-mvc serialization json

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

与Javascript类似的缩小和过度使用CSS

我知道有几种工具能够混淆JavaScript文件,例如通过转换简单的函数,如:

function testing()
{
  var testing;
  var testing2;
  alert(testing+testing2);
}
Run Code Online (Sandbox Code Playgroud)

function a(var a,b;alert(a+b);)
Run Code Online (Sandbox Code Playgroud)

我的问题是这样的事情是否存在与CSS/HTML一起使用(或者是否存在具有类似效果的工具)?特别是,缩小/混淆工具实际上重命名变量和refereneces并消除额外的空白等.

如果是这样的话 - 性能上的好处是否会超过CSS/HTML/JavaScript缩小/混淆的可读性?

html javascript css obfuscation minify

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

使用.NET 4.5和IIS在MVC中应用程序死锁

在最近将应用程序更新到.NET 4.5时,我开始注意到一些与控制器(及其相关的Actions)相关的奇怪行为在来自Javascript的AJAX调用期间被"阻止".

这些问题通常是不一致的,但如果通过异步AJAX调用访问Controller会导致问题,并且在此请求期间会进行另一次调用(通过AJAX或传统方式).

这导致原始呼叫被"阻止",并且通常需要1-2分钟才能解决此"死锁"并且操作按预期执行.

示例场景

  • 用户单击一个链接,该链接将临时存储
    要在下一个请求中访问的ViewData中的值.

  • 发生重定向并访问另一个Controller(应该是)并且在加载AJAX调用之后.

  • 在此AJAX调用(正确访问ViewData值)期间,将快速进行其他调用(例如,用户立即单击链接以导航到另一个Controller).单击此链接后,将出现"死锁",浏览器将无响应.

    要么

  • 的通话将被成功执行(只要它没有被另一个请求中断),但试图执行上述步骤将失败.

附加信息

  • 如上所述,这个问题相当不一致,因为它通常会在第一个请求(AJAX调用)上正确执行,只要它不被中断.但是,如果您再次尝试拨打同一个电话,则会失败.

  • 使用Browser Profiler/Fiddler /开发工具(F12),正在进行第二次AJAX调用,但它似乎永远不会执行.(即使在AJAX调用中放置一个断点,但是尽管调用了断点,但从未命中断点).

  • 此问题仅在Internet Explorer 9或更低版本中发生.

  • 该应用程序使用的是MVC3,.NET Framework 4.5,IIS 7.5,是在Visual Studio 2012中开发的.

试图解决方案

  • SessionState - 尝试用于SessionStateBehavior.ReadOnly避免可能在相关控制器上发生的任何阻塞问题.

  • 临时存储 - 使用各种不同的方法在控制器之间传递临时值,例如ViewData,Session和Cache.

  • ITempDataProvider -目前正在考虑实施一个供应商来处理任何临时值,以便可以将项目迁移到更无会话的解决方案.


更新

在咨询ASP.NET团队的几个成员和其他一些社区贡献者之后,确定该问题实际上是.NET 4.5中的一个错误.

您可以在此博客文章中阅读有关此问题的更多信息,我在此处撰写了相同的主题和更新的修补程序.

.net c# asp.net iis asp.net-mvc

9
推荐指数
1
解决办法
2029
查看次数

基于Page - OrchardCMS的布局

我在使用Orchard时遇到了一个问题,我确信应该有一个相当简单的修复/解决方案,但我还没有找到它.

我正在尝试为我的主页(580px)建立特定的宽度内容区域,并为内容页面(800px)建立更大的宽度.

Layout.cshtml片段:

    <div id='content'>
        @Zone(Model.Content)
    </div>
Run Code Online (Sandbox Code Playgroud)

样式:

    #Content
    {
        [...]
        width: 580px;
    }
Run Code Online (Sandbox Code Playgroud)

目前 - 无论页面(主页或内容)如何,Content div都会包装我的所有内容.我想知道是否可以使用不同的div来封装基于Page的内容,如下所示:

Layout.cshtml想法:

@if(Model.Page != "Home")
{
    <div id='fullcontent'>
        @Zone(Model.Content)
    </div>
}
else
{
    <div id='content'>
        @Zone(Model.Content)
    </div>
}
Run Code Online (Sandbox Code Playgroud)

我不确定上述建议的方法是否可行(或者我不确定如何检查当前页面) - 但是任何其他建议都将受到赞赏.

layout styling orchardcms

8
推荐指数
1
解决办法
5023
查看次数