gpt4 book ai didi

javascript - PyBossa 加载和呈现任务

转载 作者:数据小太阳 更新时间:2023-10-29 04:42:24 24 4
gpt4 key购买 nike

我正在尝试在 CrowdCrafting.org 上建立一个项目通过使用 PyBOSSA 框架。我关注了他们的tutorial用于项目开发。第一部分对我来说似乎很清楚,创建项目和添加任务工作正常。

然后我构建了自己的 HTML 网页来向用户展示任务。现在下一步是从项目中加载任务,将它们呈现给用户,并保存他们的答案。

不幸的是,我不知道该怎么做。

我将尝试提出一些问题来让您理解我的问题:

  1. 我该如何尝试?唯一的方法似乎是更新代码,然后运行 ​​pbs update_project
  2. 在哪里可以找到 PyBossa.js 的文档?我刚刚看到(在教程和其他页面上)有一些函数,例如 pybossa.taskLoaded(function(task, deferred){});pybossa.presentTask(function(task , 延迟){});。但我不知道它们是如何工作的以及还有什么。这page看起来它会包含一些文档,但实际上没有(损坏的链接或空索引)。
  3. 我如何使用图书馆?我想 a) 加载任务,b) 将其呈现给用户,c) 向用户显示他的进度,以及 d) 发送答案。所以我想我必须调用 4 个不同的函数。但我不知道怎么做。

  1. 查看示例项目的代码,我不明白有关加载disqus 的内容是什么。我认为 disqus 是一个论坛软件,但我对此不确定,我不知道这与我的项目(或他们的)有什么关系。

据我所知,JS 库的基本部分是:

pybossa.taskLoaded(function(task, deferred) {
if ( !$.isEmptyObject(task) ) {
deferred.resolve(task);
}
else {
deferred.resolve(task);
}
});

pybossa.presentTask(function(task, deferred) {
if ( !$.isEmptyObject(task) ) {
// choose a container within your html to load the data into (depends on your layout and on the way you created the tasks)
$("#someID").html(task.info.someName);
// by clickin "next_button" save answer and load next task
$("#next_button").click( function () {
// save answer into variable here
var answer = $("#someOtherID").val();
if (typeof answer != 'undefined') {
pybossa.saveTask(task.id, answer).done(function() {
deferred.resolve();
});
}
});
}
else {
$("#someID").html("There are no more tasks to complete. Thanks for participating in ... ");
}
});

pybossa.run('<short name>');

最佳答案

我会尽量一一回答你的问题:

  1. 您可以运行 pbs update project 或转到项目页面 >tasks > task presenter 并在那里编辑代码。

  2. 我相信this链接有效,您应该在那里找到你想要的信息。

  3. 所以,一旦您创建了项目并添加了任务和演示者(你构建的 HTML)你应该包含 Javascript演示者本身内部的代码。你实际上只需要写这两个函数:pybossa.taskLoaded(function(task,
    延迟){});和 pybossa.presentTask(function(task, deferred){});

    在第一个中你必须写下你想要发生的事情一旦任务已经加载但在你准备好展示它之前给用户(例如加载与任务相关的附加数据,除了任务本身,比如来自外部站点的图像)。一次这就完成了,你必须调用deferred.resolve(),这是方法告诉 pybossa.js 我们已经完成了任务的加载(无论是成功还是发生错误)。

    之后,你必须为第二个写回调(pybossa.presentTask) 为你的任务设置一切,就像按钮回答提交的事件处理程序一样,这里是你应该把用户完成任务的逻辑放在哪里本身,然后你应该在哪里调用 pybossa.saveTask()。再次,你最终应该调用 deferred.resolve() 来告诉 pybossa.js用户已完成此任务并呈现下一个任务。我建议你在回调里面做pybossa.saveTask(task).done(callbackFunc()),所以你要确保你正确完成当前任务后继续下一个任务已保存。

  4. 您可以忘记讨论代码。这些只是模板提供,其中包含一些代码以允许人们评论任务。为此,使用了 Disquss,但这取决于你是否要使用它,所以你可以安全地删除它代码。

关于javascript - PyBossa 加载和呈现任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25035717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com