存储Javascript小部件参数的最佳位置(前端/后端)?
我在一家在线旅行社工作,我们正在建立一个小型搜索引擎,我们的合作伙伴可以将它插入他们的网站 这是一个JS+HTML代码段,而不是iframe。类似于谷歌Adsense的东西:存储Javascript小部件参数的最佳位置(前端/后端)?,javascript,html,widget,Javascript,Html,Widget,我在一家在线旅行社工作,我们正在建立一个小型搜索引擎,我们的合作伙伴可以将它插入他们的网站 这是一个JS+HTML代码段,而不是iframe。类似于谷歌Adsense的东西: <!-- Widget code to paste in partner page --> <script async src="//example.com/minisearch.js"></script> <ins class="minisearch-engine" style
<!-- Widget code to paste in partner page -->
<script async src="//example.com/minisearch.js"></script>
<ins class="minisearch-engine"
style="display:inline-block;width:728px;height:90px"
data-param1="ca-1597538769368159"
data-param2="6301833493"
data-* = '...'
</ins>
这个小部件有大约10个参数,可能更多:背景图像、默认目的地、大小
关于小部件配置存储在何处的争论尚未结束:
合作伙伴前端:直接在脚本参数或ins标记的数据属性中。
数据库中的后端:小部件只有一个ID,配置存储在数据库中。根据请求,我们加载配置并为合作伙伴构建小部件。
最佳实践/论点是什么
编辑每一方的参数列表:
前端:
快速解
后端:
参数改变值时更灵活
可能需要检查的是调用小部件的网站是否是有效的合作伙伴
长期维护
不需要向后兼容
如果你把它放在你的后端,你的服务器将不得不响应每一个想要加载你的小部件的用户。但是如果您将来想更改配置,更好的方法是将其存储在db中。这取决于你是否会改变参数的数量,甚至改变参数的值。这是一个非常新且不稳定的项目。我们不知道它将如何演变参数的数量和它们的值。一般来说,将参数放在前端是一个好主意。谷歌地图就是这样做的。使用数据库中的参数可以在将来更改它们,但必须考虑向后兼容性。为什么不假定某些参数为默认值,并在需要重写时将其作为的属性?或者在将小部件添加到页面时使用一些javascript初始化?很多插件都是这样做的。关于向后兼容性,我认为后端存储可以避免这个问题,因为您可以控制所有参数和代码。客户端只需使用自己的ID调用初始化脚本。Google Adsense是这样做的: