我正在使用Flask开发Flask Web应用程序。它接受URL,因为输入会在各种项目上进行一些计算,然后截取该页面的屏幕截图,但是,屏幕截图部分至少需要5到7秒的时间,这实际上取决于他们的网站何时完全加载。
我不能全神贯注于如何使用计算加载页面,而是将屏幕截图部分保留下来,直到加载了带有计算的新页面之后;可能仅在显示图像的区域显示加载的gif。 我考虑过只使用计算来渲染模板,然后通过ajax加载页面,提交图像的FX,通过jquery运行一个加载gif来代替图像,然后每隔x秒通过jquery刷新页面直到完成,但是似乎不好的做法是,任何输入/评论都将受到赞赏。
@app.route('/', methods=['GET', 'POST'])
def index():
# bunch of calcs happen first
imgofsite = ''
driver.set_window_size(width=800, height=600)
driver.get(site) # whatever reachable url
timeout = time.sleep(5)
if not error:
name_it = str(site)
apng, seppng, namepng = name_it.partition('//www.')
time.sleep(2)
if os.path.isfile(namepng.lower().replace('/', '-') + '.png'):
pass
else:
driver.save_screenshot('./static/' + name.lower().replace('/', '-') + '.png')
imgofsite = namepng.lower().replace('/', '-') + '.png'