Javascript Oracle APEX动态操作锁定页面

Javascript Oracle APEX动态操作锁定页面,javascript,multithreading,oracle,oracle-apex,Javascript,Multithreading,Oracle,Oracle Apex,我在OracleApex页面中有一个动态操作,它执行PL/SQL代码(一个创建BLOB的存储过程) 因此,当用户单击它时,后面的javascript(动态操作“运行”PL,页面被“锁定”,直到一切完成) 我如何才能使某些东西在完成此过程之前不会完全锁定浏览器 谢谢如果您还没有升级到版本5,一个简单的方法就是使用 在数据库、函数或程序包中定义所需的功能 然后,在后台使用API启动该函数 例如,如果在包PROJECTX\u IO中定义了一个过程upload\u pending,则可以从以下内容开始:

我在OracleApex页面中有一个动态操作,它执行PL/SQL代码(一个创建BLOB的存储过程)

因此,当用户单击它时,后面的javascript(动态操作“运行”PL,页面被“锁定”,直到一切完成)

我如何才能使某些东西在完成此过程之前不会完全锁定浏览器


谢谢

如果您还没有升级到版本5,一个简单的方法就是使用

在数据库、函数或程序包中定义所需的功能

然后,在后台使用API启动该函数

例如,如果在包
PROJECTX\u IO
中定义了一个过程
upload\u pending
,则可以从以下内容开始:

declare
  p_job number
begin
p_job := apex_plsql_job.submit_process(
    p_sql => 'BEGIN PROJECTX_IO.upload_pending; END;',
    p_status => 'Uploading');
end;
您当前没有使用
p\u job
中返回的作业id执行任何操作。如果您知道在任何时候只有一个后台作业在运行,那么将其添加到数据库中的一行表中是有效的。这只会转到上面代码段的底部(在
结束之前;
):

然后,在后台进程内,您可以访问进程的作业id。最后,您可以使用以下命令更改作业状态:

select job into p_job from t_job;
apex_plsql_job.update_job_status(p_job,
    'Upload complete');

如何处理多个后台作业?

APEX\u PLSQL\u作业包已弃用。建议改为使用DBMS_调度程序。@JeffreyKemp感谢您的提示
select job into p_job from t_job;
apex_plsql_job.update_job_status(p_job,
    'Upload complete');