小编zx8*_*x81的帖子

jQuery .load()等到内容加载完毕

我想让网页页面彼此滑动.所以我做了$('a').click(); 检查链接是否为本地的函数,以及是否获取链接href并将其加载到正文.

$('a').click(function(){
    var href=$(this).attr('href');  
    $('body').load(href);
    return false;
});
Run Code Online (Sandbox Code Playgroud)

它看起来不错,但我的网站也包含了很多js插件.执行它们需要一段时间,并且.load操作首先显示'由js'内容保持不变,然后执行js.它导致内容的错误flickr.

是否可以使用JS的所有功能来缓存新内容,在完成之前不要更改旧主体,并且当所有DOM和JS都在新内容上完成时,slideOut旧内容和slide在新内容中?

编辑:我认为重点不在于检测js执行,而在于检查是否所有其他文件都被加载 - 应该在$(window).load的新文件同时触发DOM更改.

[编辑] - - - - - - - - - - - - - - - - - - - - - - - - -----------------------

我的解决方案是css代码(css在构建dom之前始终加载),具有跨浏览器不透明度0.

.transparent{
    -moz-opacity: 0.00;
    opacity: 0.00;
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha"(Opacity=0);
    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
    filter:alpha(opacity=0);
}
Run Code Online (Sandbox Code Playgroud)

并且它通常但不总是防止内容的错误闪烁.现在它可以以某种方式检测jQuery ajax加载内容并应用一些show timeout等等.但实际上问题仍然存在.

现在为这个问题做一个更简单的例子:

如何在$('body')之后开始更改DOM.在点击触发.load('something.php')函数的链接后,加载('something.php')3000ms?(点击后应立即开始加载,但必须稍后启动DOM更改)

jquery

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

提取所有唯一线

我有重复精确文本行的文本文件,但我只想要其中一个.想象一下这个文本文件:

AAAAA
AAAAA
AAAAA
BB
BBBBB
BBBBB
CCC
CCC
CCC
Run Code Online (Sandbox Code Playgroud)

我只需要以下四行:

AAAAA
BB
BBBBB
CCC
Run Code Online (Sandbox Code Playgroud)

我使用的是文本编辑器(EmEditor或Notepad ++),它支持RegEx,而不是编程语言,所以我必须使用纯正的表达式.

有帮助吗?

编辑:我检查了hsz提到的另一个帖子,我想说清楚这个是不一样的.虽然两者都需要删除重复的行,但实现它的方式是不同的.我需要纯粹的RegEx,但是其他线程的最佳答案依赖于特定的Notepad ++插件(它甚至不再带有它),所以它甚至不是正则表达式解决方案.第二种情况是正则表达式,它在Notepad ++上有效,但在EmEditor上却没有,我也需要它.所以我不认为我的问题是重复那个问题,虽然这个链接很有用,所以我感谢hsz.

regex text-extraction

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

Python中的可变宽度Lookbehind问题

我有以下场景:

1) car on the right shoulder
2) car on the left shoulder
3) car on the shoulder
Run Code Online (Sandbox Code Playgroud)

当左边没有时,我想匹配"肩膀".所以只有3)回归"肩膀"

re.compile(r'(?<!right|right\s*)shoulder')
sre_constants.error: look-behind requires fixed-width pattern
Run Code Online (Sandbox Code Playgroud)

好像我不能用\ s*和"|"

我该怎么解决这个问题.

提前致谢!

python regex negative-lookahead lookbehind

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

为什么立即调用此分组运算符+函数

我正在研究Immediatly Invoked Function Expressions(IIFE)的行为,在这样做时我遇到了以下情况.

(function () {
    document.write("bar");
})

(function () {
    document.write("foo");
}());
Run Code Online (Sandbox Code Playgroud)

我认为第一个只是一个分组运算符,里面有一个函数表达式而不调用它.第二个是分组运算符以及函数表达式,但现在调用该函数.

我觉得奇怪的是两者都被调用了,为什么呢?

(function () {
    document.write("bar");
})

var x = 1;

(function () {
    document.write("foo");
}());
Run Code Online (Sandbox Code Playgroud)

当我通过在两者之间插入变量声明来打破这两个时,它只是写foo.这是我的预期.

javascript iife

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

捕捉量词和量词算术

首先,让我解释一下,这个问题既不是关于如何捕获组,也不是关于如何使用量词,这是我非常熟悉的正则表达式的两个特征.对于可能熟悉异国情调引擎中不寻常语法的正则表达式爱好者而言,这是一个更高级的问题.

捕捉量词

有谁知道正则表达式的味道是否允许你捕捉量词?通过这个,我的意思是计数与+和*等量词匹配的字符数将被计算,并且这个数字可以在另一个量词中再次使用.

例如,假设您要确保在此类字符串中具有相同数量的Ls和Rs:LLLRRRRR

你可以想象一下这样的语法

L(+)R{\q1}
Run Code Online (Sandbox Code Playgroud)

其中捕获了L的+量词,并且在R的量词中将捕获的数字称为{\ q1}

这对平衡{@,=, - ,/}在字符串中的数量很有用,例如@@@@"星球大战"===="1977"----"科幻小说"////"乔治卢卡斯"

与递归的关系

在某些情况下,量词捕获会优雅地替换递归,例如由相同数量的Ls和Rs构成的一段文本,a in

L(+) some_content R{\q1} 
Run Code Online (Sandbox Code Playgroud)

这个想法在下面的页面中有一些细节:Captifured Quantifiers

它还讨论了捕获量化的自然扩展:量化算术,适用于您希望匹配(3*x + 1)之前匹配的字符数的情况.

我试图找出这样的事情是否存在.

在此先感谢您的见解!

更新

Casimir给出了一个很棒的答案,它显示了两种方法来验证模式的各个部分具有相同的长度.但是,我不想在日常工作中依赖其中任何一种.这些都是表现出色表演的伎俩.在我看来,这些美丽但复杂的方法证实了这个问题的前提:一个正则表达式特征来捕获量化的字符数(例如+或*)能够匹配将使这种平衡模式非常简单并扩展语法一种令人愉快的表达方式.

更新2(稍后)

我发现.NET有一个接近我所询问的功能.添加了演示该功能的答案.

regex recursion quantifiers

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

仅匹配给定集合中一个字符的匹配项

我需要验证一个输入字符串,这样true只有当字符串包含一个特殊字符@#$%,只有一个,最多一次时,验证才会返回.字母和数字可以是任何地方,可以重复任意次数,但至少应该有一个数字或字母

例如:

一个@:真的

@a:是的

一个@ $:false

a @ n01:是的

an01:错误

a:假

@:false

我试过了

 [0-9A-Za-z]*[@#%$]{1}[0-9A-Za-z]*
Run Code Online (Sandbox Code Playgroud)

我希望这会匹配任何特殊字符的一次出现.但不是.我只需要在集合中出现任何一个.

我也试过交替,但无法解决它.

java regex

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

如何让父母阶层了解其子女的变化?

这是一个示例代码:

public class MyParent : INotifyPropertyChanged
{
    List<MyChild> MyChildren;

    public bool IsChanged
    {
        get
        {
            foreach (var child in MyChildren)
            {
                if (child.IsChanged) return true;
            }
            return false;
        }
    }


    public event PropertyChangedEventHandler PropertyChanged;
    private void RaiseChanged(string propName)
    {
        if (PropertyChanged != null)
            PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propName));
    }
}

public class MyChild : INotifyPropertyChanged
{
    private int _Value;
    public int Value
    {
        get
        {
            return _Value;
        }
        set
        {
            if (_Value == value)
                return;
            _Value = value;
            RaiseChanged("Value");
            RaiseChanged("IsChanged");
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# wpf binding parent-child inotifypropertychanged

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

写入后立即从RavenDb读取会返回不一致的数据

我有一个协调过程,由后台线程定期从外部Web服务检索对象ID列表,并尝试将缺少的实体添加到嵌入式RavenDb数据库.执行此过程的循环如下:

foreach (var pageId in listOfPageIds)
{
    if ( _contentService.GetPageByPageId(pageId) == null)
    {
        _contentService.AddPage(pageId);
    }
}
Run Code Online (Sandbox Code Playgroud)

的实施GetPageByPageId()AddPage()如下:

public Page GetPageByPageId(string pageId)
{
    using (var session = DocumentStore.OpenSession())
    {
        return session.Query<Page>().FirstOrDefault(page => page.PageId == pageId);
    }
}

public bool AddPage(string pageId)
{
    var page = GetPageByPageId(pageId);
    if (page != null)
    {
        return false;
    }
    using (var session = DocumentStore.OpenSession())
    {
        var newPage = new Page() {PageId = pageId};
        session.Store(newPage);
        session.SaveChanges();
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

问题是如果列表有重复的id,一旦它添加第一个id并再次检查该id,结果将返回为空.就好像缺少一个可以注册新添加的实体的终结步骤.如果我稍后从另一个线程查询该集合,则返回具有该给定id的实体.任何人都可以看到这里的问题是什么?

谢谢,

c# database document-database ravendb

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

Apache重写子网ip范围

有人可以告诉我如何在mod_rewrite中放入以下IP范围(属于Cloudfront)吗?我希望将example.com的非www请求重定向到www.example.com但不重定向来自以下IP范围的任何IP地址:

54.192.0.0/16
54.230.0.0/16
54.239.128.0/18
54.239.192.0/19
54.240.128.0/18
204.246.164.0/22
204.246.168.0/22
204.246.174.0/23 
204.246.176.0/20 
205.251.192.0/19 
205.251.249.0/24 
205.251.250.0/23 
205.251.252.0/23 
205.251.254.0/24 
216.137.32.0/19 
Run Code Online (Sandbox Code Playgroud)

我使用了一个名为rgxg的工具将上述所有内容从CIDR转换为Regex,并在我的httpd.conf中创建了以下条目:

    RewriteCond %{HTTP_HOST} ^example\.com$ [NC,OR]

    RewriteCond %{HTTP:X-FORWARDED-FOR} !54\.192(\.(25[0-5]|2[0-4][0-9]||1[0-9]{2}|[1-9]?[0-9])){2} 

    RewriteRule ^/(.*)?$ http://www.example.com/$1 [R=301,NC,NE,L]
Run Code Online (Sandbox Code Playgroud)

我在RewriteCond条目中添加了所有ip范围,但仅包括第一个,因为我不想弄乱这篇文章.该规则似乎不起作用.如果我只放一个IP地址,它的工作没有问题.

有人可以检查,看看我做错了什么?

谢谢!-嘛

regex apache mod-rewrite rewrite

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

以线程安全的方式获取随机数

这是一篇很好的文章,描述了随机数的线程安全性:以线程安全的方式获取随机数

但我坚持使用"RandomGen2"示例:

public static class RandomGen2 
{ 
    private static Random _global = new Random(); 
    [ThreadStatic] 
    private static Random _local;

    public static int Next() 
    { 
       Random inst = _local; 
       if (inst == null) 
       { 
           int seed; 
           lock (_global) seed = _global.Next(); 
           _local = inst = new Random(seed); 
       } 
       return inst.Next(); 
   } 
Run Code Online (Sandbox Code Playgroud)

}

为什么线程静态字段被复制到局部变量:Random inst = _local; ?为什么不简单地使用

if (_local == null) .... return _local.Next()

.net c# random multithreading thread-safety

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