Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将后台作业转换为类似函数的内容?_Javascript_Android_Parse Platform - Fatal编程技术网

Javascript 如何将后台作业转换为类似函数的内容?

Javascript 如何将后台作业转换为类似函数的内容?,javascript,android,parse-platform,Javascript,Android,Parse Platform,我正在制作一个新闻阅读器应用程序,并使用Parse.com后台作业从报纸的RSS提要中收集链接。我使用xmlreader.js和sax.js解析httpResponse,并使用saveAll和beforeSave定期更新数据浏览器中的类 我有多份报纸,有多个类别,总共有30多对(我以后会包括更多对,因为我想包括地区报纸)。到目前为止,我只在一家报纸和一个类别工作——印度教体育类;它现在运行良好。我认为,复制这两项功能并创造就业机会是没有效率的 因此,我想问我是否可以将这些作业和beforeSav

我正在制作一个新闻阅读器应用程序,并使用Parse.com后台作业从报纸的RSS提要中收集链接。我使用xmlreader.js和sax.js解析httpResponse,并使用saveAll和beforeSave定期更新数据浏览器中的类

我有多份报纸,有多个类别,总共有30多对(我以后会包括更多对,因为我想包括地区报纸)。到目前为止,我只在一家报纸和一个类别工作——印度教体育类;它现在运行良好。我认为,复制这两项功能并创造就业机会是没有效率的

因此,我想问我是否可以将这些作业和beforeSave转换为某种函数,这样我就可以传入报纸类别对类名或其url来自动执行这些操作

完整代码-

工作-

在保存之前-

Parse.Cloud.beforeSave("HinduSports", function(request, response) {
//console.log("in beforeSave");
var query = new Parse.Query(HinduSports);
var linkText = request.object.get("link")
var titleText = request.object.get("title");
query.equalTo("link", linkText);
query.first({
  success: function(object) {
    //console.log("in query");
    if (object) {
        //console.log("found");
        if(object.get('title')!==titleText){
            console.log("title not same");
            object.set("title", titleText);
            response.success();
        }
        else{
            console.log("title same");
            response.error();
        }
    } else {
        console.log("not found");
        response.success();
    }
  },
  error: function(error) {
    response.error();
  }
});
});

在作业代码中,您可以查询数据存储中要处理的所有url,然后遍历请求每个url的结果,并将httpresponse传递给完成所有工作的函数

所以你会有(伪代码)


这不是最好的解释,但我希望这有助于

在@startswithaj的帮助下,我修改了代码,将所有文章保存在一个类中。剩下的就是在save方法之前添加一个
。但仍然存在一个问题<代码>全部保存
有时才完成。例如,我第一次运行了代码,并在日志中记录了以下内容:

I2014-04-26T18:18:40.036Z] v93: Ran job job_get_data_for_all_newspapers with:
Input: {}
Result: Saving completed successfully.
I2014-04-26T18:18:40.926Z] Successfully retrieved 2
I2014-04-26T18:18:40.926Z] getData NEW & CAT ID - 1, 5 feedUrl http://www.thehindu.com/sport/?service=rss
I2014-04-26T18:18:40.927Z] getData NEW & CAT ID - 1, 4 feedUrl http://www.thehindu.com/news/national/?service=rss
I2014-04-26T18:18:40.927Z] promisesGetNP [object Object],[object Object]
I2014-04-26T18:18:41.479Z] processData NEW & CAT ID - 1, 5
I2014-04-26T18:18:41.622Z] listArray http://www.thehindu.com/sport/other-sports/mankirat-singh-sets-record/article5951540.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication
I2014-04-26T18:18:41.628Z] promises undefined
I2014-04-26T18:18:41.629Z] promisesGetData 
I2014-04-26T18:18:41.629Z] Done getData? 
I2014-04-26T18:18:42.082Z] processData NEW & CAT ID - 1, 4
I2014-04-26T18:18:42.311Z] listArray http://www.thehindu.com/news/national/muslim-women-entitled-to-maintenance-even-after-divorce-supreme-court/article5951562.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication
I2014-04-26T18:18:42.324Z] promises undefined
I2014-04-26T18:18:42.324Z] promisesGetData 
I2014-04-26T18:18:42.324Z] Done getData? 
I2014-04-26T18:18:42.324Z] done job
第二次删除一些无用的console.log后,我得到了这个。您可以看到有一个
已全部保存saveAll
success:function
中调用的code>-

I2014-04-26T18:20:53.130Z] v94: Ran job job_get_data_for_all_newspapers with:
Input: {}
Result: Saving completed successfully.
I2014-04-26T18:20:53.307Z] Successfully retrieved 2
I2014-04-26T18:20:53.307Z] getData NEW & CAT ID - 1, 5 feedUrl http://www.thehindu.com/sport/?service=rss
I2014-04-26T18:20:53.307Z] getData NEW & CAT ID - 1, 4 feedUrl http://www.thehindu.com/news/national/?service=rss
I2014-04-26T18:20:53.911Z] processData NEW & CAT ID - 1, 5
I2014-04-26T18:20:53.951Z] listArray http://www.thehindu.com/sport/other-sports/mankirat-singh-sets-record/article5951540.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication
I2014-04-26T18:20:53.995Z] Done getData? 
I2014-04-26T18:20:54.200Z] SAVED ALL!
I2014-04-26T18:20:54.818Z] processData NEW & CAT ID - 1, 4
I2014-04-26T18:20:55.016Z] listArray http://www.thehindu.com/news/national/muslim-women-entitled-to-maintenance-even-after-divorce-supreme-court/article5951562.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication
I2014-04-26T18:20:55.031Z] Done getData? 
I2014-04-26T18:20:55.031Z] done job

我的新代码可以找到。新代码从第150行开始。

谢谢您的回复。我没有什么疑问。你所说的
(id)//是什么意思?//你需要把它放在一行中。
?这是一个字符串,它等于我正在处理的报纸子类的名称吗?\uu2。在XML的过程中,我需要一个子类的实例来添加数据。不是吗?\uuuuuuuuuuuuu3.在我处理完XML之后,在保存之前如何处理它?我应该把id作为第一个参数传递吗?你最好在parse.com论坛上发布你的问题。他们将有更多的经验分析用户来帮助你。我在那里有一个糟糕的经验,没有人回复。我认为你需要有一个名为Paper的类,包含{id,newspaperName,newsPaperUrl},然后你的Hindosports类需要更改为类似newsArticle{id,newspaperId,link,title,pubdate}的内容然后,每个新闻文章都可以通过其Id链接到一份报纸。是的,您可以对任何报纸文章使用newsArticle类。我会说,如果你有成千上万的文章,它可能会使它慢下来。但您只是在beforeSave方法中执行单列equalsTo(query.equalTo(“link”,linkText);)查询。在mongodb(解析使用的)上,即使查询所针对的字段没有索引,这些操作也应该非常快。别担心。
I2014-04-26T18:18:40.036Z] v93: Ran job job_get_data_for_all_newspapers with:
Input: {}
Result: Saving completed successfully.
I2014-04-26T18:18:40.926Z] Successfully retrieved 2
I2014-04-26T18:18:40.926Z] getData NEW & CAT ID - 1, 5 feedUrl http://www.thehindu.com/sport/?service=rss
I2014-04-26T18:18:40.927Z] getData NEW & CAT ID - 1, 4 feedUrl http://www.thehindu.com/news/national/?service=rss
I2014-04-26T18:18:40.927Z] promisesGetNP [object Object],[object Object]
I2014-04-26T18:18:41.479Z] processData NEW & CAT ID - 1, 5
I2014-04-26T18:18:41.622Z] listArray http://www.thehindu.com/sport/other-sports/mankirat-singh-sets-record/article5951540.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication
I2014-04-26T18:18:41.628Z] promises undefined
I2014-04-26T18:18:41.629Z] promisesGetData 
I2014-04-26T18:18:41.629Z] Done getData? 
I2014-04-26T18:18:42.082Z] processData NEW & CAT ID - 1, 4
I2014-04-26T18:18:42.311Z] listArray http://www.thehindu.com/news/national/muslim-women-entitled-to-maintenance-even-after-divorce-supreme-court/article5951562.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication
I2014-04-26T18:18:42.324Z] promises undefined
I2014-04-26T18:18:42.324Z] promisesGetData 
I2014-04-26T18:18:42.324Z] Done getData? 
I2014-04-26T18:18:42.324Z] done job
I2014-04-26T18:20:53.130Z] v94: Ran job job_get_data_for_all_newspapers with:
Input: {}
Result: Saving completed successfully.
I2014-04-26T18:20:53.307Z] Successfully retrieved 2
I2014-04-26T18:20:53.307Z] getData NEW & CAT ID - 1, 5 feedUrl http://www.thehindu.com/sport/?service=rss
I2014-04-26T18:20:53.307Z] getData NEW & CAT ID - 1, 4 feedUrl http://www.thehindu.com/news/national/?service=rss
I2014-04-26T18:20:53.911Z] processData NEW & CAT ID - 1, 5
I2014-04-26T18:20:53.951Z] listArray http://www.thehindu.com/sport/other-sports/mankirat-singh-sets-record/article5951540.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication
I2014-04-26T18:20:53.995Z] Done getData? 
I2014-04-26T18:20:54.200Z] SAVED ALL!
I2014-04-26T18:20:54.818Z] processData NEW & CAT ID - 1, 4
I2014-04-26T18:20:55.016Z] listArray http://www.thehindu.com/news/national/muslim-women-entitled-to-maintenance-even-after-divorce-supreme-court/article5951562.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication
I2014-04-26T18:20:55.031Z] Done getData? 
I2014-04-26T18:20:55.031Z] done job