小编har*_*rto的帖子

为什么我发现Javascript/jQuery如此难以正确?

我的背景是在C中,我已经选择了PHP,mySQL,HTML,CSS而没有太多问题.

但我发现Javascript/jQuery难以正确使用.很沮丧.为什么?

  1. 它似乎违反了许多传统的编程原则(例如可变范围)

  2. 未定义的变量似乎无处不在,并且已经存在与它们相关联的值.例如(来自jQuery文档):

    $("a").click(function(event) {
        event.preventDefault();
        $('<div/>')
              .append('default ' + event.type + ' prevented')
              .appendTo('#log');
    });
    
    Run Code Online (Sandbox Code Playgroud)

    什么是"事件"?我必须使用此变量名称吗?我应该假设这个对象是用正确的东西神奇地实例化的,我可以使用JQuery API中的任何方法列表吗?

  3. 似乎有一堆随机规则(例如,返回false以停止默认操作,但有时这不起作用?)

  4. 调试时的非确定性行为.(例如,我刷新浏览器,尝试一些东西并获取结果X用于我在Firebug中观看的JS变量.我再次刷新,我得到结果Y?)

  5. 非常混乱的代码很难遵循.什么时候发生?我正在使用Firebug和Chrome开发者工具,但我没有获得足够的可见度.

似乎每天都有一些随机的JS"规则"出现在我的任何JS书籍或教程中我从未见过.

我需要做些什么才能使Javascript/jQuery对我更具确定性,控制性和逻辑性?

有没有资源可以解释Javascript的怪癖/陷阱?

谢谢!

javascript jquery

48
推荐指数
3
解决办法
1万
查看次数

是否值得在附加层中包装日志框架?

我目前正在考虑升级中型到大型Java代码库中的日志记录机制.当前使用Debug类上的静态方法记录消息,我建议将其从此切换为SLF4J或commons-logging.

应用程序架构师更喜欢我将依赖性封装在SLF4J上(可能将其包装在前面提到的Debug类中).这样可以更容易地在将来更改日志记录实现.

这对我来说似乎有些过分,因为SLF4J已经在抽象具体的日志记录实现.

是否值得在另一个本土抽象中包装像SLF4J这样的第三方日志抽象?

java logging encapsulation slf4j apache-commons-logging

20
推荐指数
3
解决办法
5369
查看次数

从模型字段中获取Django表单字段

我想创建一个表单,其中包含来自两个单独模型的字段,以及一些其他常规(非模型)字段.表单将创建每个模型的实例.我不认为我可以使用内联表单集,因为我不想包含两个模型的所有字段.

我想创建表单字段而不用硬编码模型字段的类型.

我知道我可以使用模型字段获取表单字段model_field.formfield().但是我如何获得特定的模型字段?

我的第一个解答:

def get_fields(model_class):
    fields = {}
    for f in model_class._meta.fields:
        fields[f.name] = f

class MyForm(forms.Form):
    foo_name = get_fields(Foo)['name'].formfield()
    bar_name = get_fields(Bar)['name'].formfield()
    other_field = ...
Run Code Online (Sandbox Code Playgroud)

有相同的get_fields已经?这是一个坏主意吗?依赖于model _meta属性我感到很不舒服.或者我是以完全错误的方式解决这个问题的?

python django django-models django-forms

17
推荐指数
3
解决办法
9572
查看次数

停止Eclipse在文件保存时重新启动我的Web应用程序

我正在Eclipse中创建一个JSF/Facelets Web应用程序.我已经将我的项目配置为使用由Eclipse启动/停止的Tomcat(6.0)服务器.

每当我保存文件(例如.xhtml)时,Eclipse都会重新启动应用程序,从而破坏我的HTTP会话.这很烦人,因为我经常更新我的.xhtml文件,并且应用程序不需要重新启动来检测更改.

有没有办法阻止Eclipse重新启动应用程序?具体来说,我可以将Eclipse配置为仅在保存某种类型的文件时重新启动应用程序吗?

eclipse jsf facelets

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

使用jQuery.animate在Adobe AIR中进行动画

在我的AIR应用程序中,我想使用jQuery为HTML元素设置动画.当我在全局HTMLLoader中尝试动画时,没有问题.但是,在尝试为"辅助"HTMLLoader(即原始文档打开的元素)中的元素设置动画时,我遇到了问题.

动画不流畅 - 当我移动鼠标时它只是"步进".动画属性(例如top,left等)仍然更新 - 除非移动鼠标,否则它是不可见的.因此,如果我没有移动鼠标,动画就会完成,而不会看到开始和结束状态之间的任何转换.

动画的类型似乎并不重要.我已将代码简化为以下内容:

var loader;

$(function() {
    loader = new air.HTMLLoader();
    loader.addEventListener(air.Event.COMPLETE, start);
    window.htmlLoader.stage.addChild(loader);
    loader.load(new air.URLRequest('sandbox2.html'));
});

function start() {
    loader.width = loader.window.document.width;
    loader.height = loader.window.document.height;
    $('.task', loader.window.document).click(function() {
        $(this).animate({ backgroundColor: '#c00' }, 1000);
    });
}
Run Code Online (Sandbox Code Playgroud)

我尝试将等效的HTML/JS加载到Firefox和Safari中,这很好.我正在运行Mac OS X 10.5.

有任何想法吗?谢谢!

air jquery jquery-animate

5
推荐指数
2
解决办法
1712
查看次数

帮助理解Sierat of Eratosthenes的实施

我知道,这很无聊,但我需要一些帮助来理解Eratosthenes筛子的实施.这是编程Praxis问题的解决方案.

(define (primes n)
  (let* ((max-index (quotient (- n 3) 2))
         (v (make-vector (+ 1 max-index) #t)))
    (let loop ((i 0) (ps '(2)))
      (let ((p (+ i i 3)) (startj (+ (* 2 i i) (* 6 i) 3)))
        (cond ((>= (* p p) n)
               (let loop ((j i) (ps ps))
                  (cond ((> j max-index) (reverse ps))
                        ((vector-ref v j)
                          (loop (+ j 1) (cons (+ j j 3) ps)))
                        (else (loop (+ j 1) ps)))))
              ((vector-ref v …
Run Code Online (Sandbox Code Playgroud)

puzzle algorithm scheme sieve-of-eratosthenes

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

用于域名的python正则表达式

我正在尝试使用以下正则表达式从文本中提取域名,但它只是产生什么,它有什么问题?我不知道这是否适合问这个"修复代码"问题,也许我应该阅读更多.我只想节省一些时间.谢谢

pat_url = re.compile(r'''

            (?:https?://)*

            (?:[\w]+[\-\w]+[.])*

            (?P<domain>[\w\-]*[\w.](com|net)([.](cn|jp|us))*[/]*)

            ''')

print re.findall(pat_url,"http://www.google.com/abcde")
Run Code Online (Sandbox Code Playgroud)

我希望输出为google.com

python regex dns url

3
推荐指数
1
解决办法
6168
查看次数

JSF/Facelets:将`action`属性设置为动态计算的字符串

在我的JSF/Facelets应用程序中,我想使用自定义标记从页面ID列表中动态生成痕迹痕迹:

<foo:breadcrumbs trail="foo,bar,baz"/>
Run Code Online (Sandbox Code Playgroud)

这应该产生如下:

<h:commandLink action="foo" ... />
<h:commandLink action="bar" ... />
<!-- (etc.) -->
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像这样:

<ui:repeat value="#{fn:split(trail, ',')}" var="key">
    <h:commandLink action="#{key}" ... /> 
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)

此代码的问题是#{key}被解释为方法绑定.但是,我只想将字符串值#{key}作为导航结果返回.我怎样才能做到这一点?


我唯一能想到的是创建一个具有outcome字段和动作处理程序的虚拟托管bean ,并像这样调用它:

<h:commandLink action="#{dummy.click}" ...>
    <f:setPropertyActionListener target="#{dummy.outcome}" value="#{key}" />
</h:commandLink>
Run Code Online (Sandbox Code Playgroud)

使用如此定义的虚拟类:

public class Dummy {

    private String outcome;

    public String click() {
        return outcome;
    }

    public void setOutcome(String outcome) {
        this.outcome = outcome;
    }

    public void getOutcome() {
        return outcome;
    }
}
Run Code Online (Sandbox Code Playgroud)

这看起来很丑陋,我不知道它是否会起作用.

navigation jsf facelets breadcrumbs

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

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

django url.py出错?

我是django的新手.我尝试练习并运行wiki应用程序(我在http://showmedo.com/videotutorials/video?name=1100000&fromSeriesID=110">学习django找到了教程),在url.py文件中我写了以下网址...

urlpatterns = patterns('',    
    (r'^wikicamp/(?p<page_name>[^/]+)/edit/$','wikiapp.wiki.views.edit_page'),
    (r'^wikicamp/(?p<page_name>[^/]+)/save/$','wikiapp.wiki.views.save_page'),
    (r'^wikicamp/(?p<page_name>[^/]+)/$','wikiapp.wiki.views.view_page'),
)
Run Code Online (Sandbox Code Playgroud)

但是我无法理解错误.

sre_Constants.error:Unexpected end of pattern.
  (r'^wikicamp/(?p<page_name>[^/]+)/$','wikiapp.wiki.views.view_page'), 
Run Code Online (Sandbox Code Playgroud)

我使用Django-1.0.2-final.tar.gz

django

0
推荐指数
1
解决办法
611
查看次数

如何使用Java计算torrent的哈希值

如何使用Java计算torrent文件的哈希值?我可以用bencode计算吗?

java hash bittorrent

0
推荐指数
1
解决办法
2718
查看次数