Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存储Javascript小部件参数的最佳位置(前端/后端)?_Javascript_Html_Widget - Fatal编程技术网

存储Javascript小部件参数的最佳位置(前端/后端)?

存储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

我在一家在线旅行社工作,我们正在建立一个小型搜索引擎,我们的合作伙伴可以将它插入他们的网站

这是一个JS+HTML代码段,而不是iframe。类似于谷歌Adsense的东西:

<!-- 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是这样做的: