Javascript 将数据从Django视图获取到JS以在页面上执行的最佳实践?
有人告诉我,从Django视图返回数据并在页面上加载的Javascript中使用这些返回的项目是“不好的做法” 例如:如果我正在编写一个需要一些额外数据来加载/显示基于javascript的图形的应用程序,我被告知从Django视图传递的模板变量直接将数据传递到页面上的javascript中是错误的 我的第一个想法是:Javascript 将数据从Django视图获取到JS以在页面上执行的最佳实践?,javascript,python,django,django-templates,django-views,Javascript,Python,Django,Django Templates,Django Views,有人告诉我,从Django视图返回数据并在页面上加载的Javascript中使用这些返回的项目是“不好的做法” 例如:如果我正在编写一个需要一些额外数据来加载/显示基于javascript的图形的应用程序,我被告知从Django视图传递的模板变量直接将数据传递到页面上的javascript中是错误的 我的第一个想法是: 只需在django视图中获取图形所需的数据,并在模板中使用的上下文变量中返回它。然后直接在模板中的javascript中引用该上下文变量 它应该可以很好地加载数据,但我被告知
- 只需在django视图中获取图形所需的数据,并在模板中使用的上下文变量中返回它。然后直接在模板中的javascript中引用该上下文变量李>
- 启动Django Rest框架并创建一个端点,在该端点上传递任何所需数据,并在页面加载时发出AJAX请求,然后加载数据并执行所需的JS操作李>
Django将这样的数据放入给定页面/模板的Javascript中的合适方法是什么?直接传递数据并不总是错误的方法。JS在那里,所以当其他一切就绪时,您可以执行代码。因此,当他们告诉你直接传递数据是错误的方式时,那是因为在JS出现之前,没有必要让页面和数据变得比应该的更重 但是传递基本数据是可以的,这样你的JS代码就知道它要做什么了。为了更清楚,让我们来看看你的情况: 您要渲染一个图形。而且图形有时很难渲染,这会使第一次渲染变慢。大多数情况下,如果没有页面提供的额外上下文,图形就没有那么大的用处。因此,为了使您的网页加载更快,您可以让JS在呈现网页后加载图形。如果您要等待,那么传递所需的额外数据就没有意义了,因为这会使页面更重,降低初始呈现的速度,并且需要时间来解析这些数据并将其转换为JSON对象 通过删除数据并让JS在后台加载它们,可以使页面更小,渲染速度更快。因此,当用户读取图形所需的上下文时,JS将获取所需的数据并呈现图形。这将使您的网页具有更快的初始渲染速度 因此,一般来说: 何时直接传递数据:
- 当初始数据对于JS来说是必须的时(配置、默认值等)
- 当时差非常重要,并且您不能等待太多的额外请求来完成渲染时
- 当数据非常小时
- 当呈现额外数据时,无论如何都需要时间,那么为什么不将数据也呈现在后面呢
- 当数据量很大时
- 当您需要尽可能快地渲染某些内容时
- 当这些数据需要一些繁重的过程时
- 当JS可以减小数据大小时(决定应该使用只有JS可以访问的选项准确地传递哪种类型的数据)
- 当初始数据对于JS来说是必须的时(配置、默认值等)
- 当时差非常重要,并且您不能等待太多的额外请求来完成渲染时
- 当数据非常小时
- 当呈现额外数据时,无论如何都需要时间,那么为什么不将数据也呈现在后面呢
- 当数据量很大时
- 当您需要尽可能快地渲染某些内容时
- 当这些数据需要一些繁重的过程时
- 当JS可以使您的数据大小变小时(决定应该使用仅acce的选项准确地传递哪种类型的数据)