似乎periodically_call_remote在Rails 3中已弃用,任何想法如何实现相同的功能?
我正在创建一个包含大量 HTML(数千个 div 元素)的网站。没有真正的方法可以摆脱所有这些 div 元素,并且它使站点加载非常缓慢(7-12 秒)。我试过在网站上放置缓存,但它没有帮助,因为网站仍然必须呈现所有这些 div 元素。
更具体地说,它有 140 个下拉列表,每个包含 100-800 个 div 元素,它们需要很长时间才能显示。
我的想法是在页面加载后呈现下拉列表中的 div 元素,但我不知道该怎么做?
在页面加载后呈现部分部分的最简单方法是什么?顺便说一句,我正在使用 Rails 4。
关于如何处理大量 HTML 的任何其他建议?
嗨,当我提交表单时,会调用以下Javascript.它首先从文本区域中分割出一堆url,然后:
1)为每个网址添加一个表格行,并在最后一列("状态"列)中显示"未启动".
2)再次循环遍历每个url,首先关闭它进行ajax调用以检查状态(status.php),该状态将返回0-100的百分比
.3)在同一循环中,它通过ajax启动实际进程(process.php),当进程完成时(记住连续状态更新),它将在状态列中显示"已完成"并退出auto_refresh.
4)然后它应该转到下一个'each'并为下一个url做同样的事情.
function formSubmit(){
var lines = $('#urls').val().split('\n');
$.each(lines, function(key, value) {
$('#dlTable tr:last').after('<tr><td>'+value+'</td><td>Not Started</td></tr>');
});
$.each(lines, function(key, value) {
var auto_refresh = setInterval( function () {
$.ajax({
url: 'status.php',
success: function(data) {
$('#dlTable').find("tr").eq(key+1).children().last().replaceWith("<td>"+data+"</td>");
}
});
}, 1000);
$.ajax({
url: 'process.php?id='+value,
success: function(msg) {
clearInterval(auto_refresh);
$('#dlTable').find("tr").eq(key+1).children().last().replaceWith("<td>completed rip</td>");
}
});
});
}
Run Code Online (Sandbox Code Playgroud)