小编Ste*_*ütt的帖子

为加载AJAX的数据设置jQuery事件处理程序

作为jQuery和AJAX基础知识的新手,我一直在尝试设置一些相当简单的动态加载.

我包含一个设置click事件处理程序的.js文件,它看起来像这样:

var baseurl = document.getElementById("baseurl").getAttribute("href");
var pattern = new RegExp("[^/]+");
var page = "cnt/" + pattern.exec(window.location.href.substr(baseurl.length)) + ".php";

$(document).ready(function(){
    $('a.ajax').bind('click',function(event){
        event.preventDefault();
        $('#content').load("cnt/" + pattern.exec(this.href.substr(baseurl.length)) + ".php")
    })
});
Run Code Online (Sandbox Code Playgroud)

请注意,我对文件进行了一些更改,因此相对href"testing /"将变为文件"cnt/testing.php"的绝对路径.

我的锚标签看起来像这样:

<a href="testing/" class="ajax">Link to testing page</a>
Run Code Online (Sandbox Code Playgroud)

我的问题是,无论何时将新内容加载到div#content中,我的.js文件中的处理程序都不会注册任何可能使用AJAX出现的链接.换句话说,链接将简单地充当普通的锚标签.我希望它使用AJAX加载下一页,就像它与第一页一样.

javascript ajax jquery javascript-events

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

并行运行异步方法8次

如何将以下内容转换为Parallel.ForEach?

public async void getThreadContents(String[] threads)
{
    HttpClient client = new HttpClient();
    List<String> usernames = new List<String>();
    int i = 0;

    foreach (String url in threads)
    {
        i++;
        progressLabel.Text = "Scanning thread " + i.ToString() + "/" + threads.Count<String>();
        HttpResponseMessage response = await client.GetAsync(url);
        String content = await response.Content.ReadAsStringAsync();
        String user;
        Predicate<String> userPredicate;
        foreach (Match match in regex.Matches(content))
        {
            user = match.Groups[1].ToString();
            userPredicate = (String x) => x == user;
            if (usernames.Find(userPredicate) != user)
            {
                usernames.Add(match.Groups[1].ToString());
            }
        }
        progressBar1.PerformStep();
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# parallel-processing .net-4.5

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

如何在C#(.NET 4.5)中为HttpClient.GetAsync(URI)创建回调?

我想为Google搜索创建一个简单的异步请求.

根据谷歌的说法,最简单的方法是使用他们的JSON API和简单的curl请求

curl -e http://www.my-ajax-site.com \ 'https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Paris%20Hilton'
Run Code Online (Sandbox Code Playgroud)

我想拉出前5页的结果,并将每个结果的URL添加到数组中.我发现在HttpClient.GetAsync上找到任何解释良好的教程都难以置信.我没有比这更进一步:

public String[] search(String term = "")
{
    var rq = new HttpClient();
    var uri = new Uri("https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=site:" + term);
    rq.GetAsync(uri);
}
Run Code Online (Sandbox Code Playgroud)

我想这应该启动一个任务,所以我不会阻止主线程,但是如何在请求完成时注册一个回调方法?

c# asynchronous .net-4.5 dotnet-httpclient

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