如何无限期地等待DOM加载?

时间:2017-12-31 01:49:55

标签: javascript

功能:

from datetime import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web

start = dt(2016, 6, 1)
end = dt.now()

df = web.get_data_yahoo('AAPL', start, end, interval = 'd')

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(df.index, df['Adj Close'], label='ADJ CLOSE')
ax.set_xlabel('Date')
ax.set_ylabel('Price')
ax.legend()
plt.show()

window.addEventListener("DOMContentLoaded" , function(){});

它允许我做任何事情,就像它加载DOM时两种方法之间的某些特殊性一样快。

这是window.addEventListener("load" , function(){});

但是,我怎样才能无限期地等待加载DOM?

只需加载DOM,执行该功能? 让我解释一下:想象一下,我有一个功能,任何人。

"as soon as"

假设我的代码中的立方体功能是基础功能。

但是如果DOM没有加载,则该函数将不会被执行。

那么,我怎么能无限期地等待,直到DOM加载,并推迟另一个函数,该函数响应这个主函数(立方体)

因此,如果我的脚本到达那一点并且DOM没有加载,那么所有这些函数都没有任何值。

我专注于

  

"如果发生这种情况,请执行此操作"

是:

  

"等待这种情况发生,并执行此操作"

1 个答案:

答案 0 :(得分:0)

第一步:在DOMContentLoaded处理程序和cube函数中创建一个可见的变量。它的值应该是该处理程序解决的promise。例如:

const DOMLoaded = new Promise((resolve, reject) => {
  document.addEventListener("DOMContentLoaded", resolve);
  // consider creating reject-on-timeout 
  // with something like setTimeout(reject, 60000 * 10);
});

第二步:通过调用cube():

来处理这个promise
DOMLoaded.then(() => cube(3));