Javascript 正在删除“;旧的;JSONP脚本标记是一个好的实践吗?

Javascript 正在删除“;旧的;JSONP脚本标记是一个好的实践吗?,javascript,jsonp,Javascript,Jsonp,如果一个程序可能会为JSONP调用创建多个元素,那么在添加更多元素之前删除旧元素是一种好的做法吗?为什么? 在我的例子中,在变量中保存创建的元素不是一个选项 例子 如果不删除以前的调用,结果可能如下(或乘以1000倍): 由于script标记在用于JSONP时纯粹是一种传输机制,因此我会在它完成工作后立即清理它:在JSONP回调中,或者在它超时时。因此,我不会把它们放在一边,也不会等到下一次调用时才清理上一次调用。我不确定在中使用JSONP是否通常是一种好的做法2016@DenysSéguret

如果一个程序可能会为JSONP调用创建多个
元素,那么在添加更多元素之前删除旧元素是一种好的做法吗?为什么?

在我的例子中,在变量中保存创建的元素不是一个选项

例子 如果不删除以前的调用,结果可能如下(或乘以1000倍):


由于
script
标记在用于JSONP时纯粹是一种传输机制,因此我会在它完成工作后立即清理它:在JSONP回调中,或者在它超时时。因此,我不会把它们放在一边,也不会等到下一次调用时才清理上一次调用。

我不确定在中使用JSONP是否通常是一种好的做法2016@DenysSéguret对于避免与CORS相关的问题,你还有什么建议吗?@Hewbot:这不是与CORS相关的问题,这是一个与SOP相关的问题,CORS()有时可以解决这个问题。理想情况下,只有在不能使用CORS的情况下才使用JSONP,并且只有在非常值得信任的其他域上使用JSONP。@t.J.Crowder好的,假设我不完全信任其他域。我应该如何收集他们的JSON?@Hewbot:您可以查看他们是否有一个支持CORS的端点返回JSON(而不是JSONP),并使用ajax进行查询。如果他们这样做了,你就准备好了。如果他们不这样做,而您也不信任他们,那么您可能不想让他们在您的站点上放置任何他们想要的代码(这就是JSONP的本质)。如果他们有一个未启用CORS的JSON(而不是JSONP)提要,您需要让您的页面查询您的服务器,然后服务器从他们的服务器查询它,验证它是真正的JSON,并将它返回给您。当然,它们可能会阻止服务器的IP;如果他们想分享,他们会启用CORS。
<script src="https://example.com/script1"></script>
<script src="https://example.com/script2"></script>
<script src="https://example.com/script3"></script>
<script id="jsonp-call" src="https://example.com/script1"></script>
<!-- Then it'll become -->
<script id="jsonp-call" src="https://example.com/script2"></script>
<!-- And after that -->
<script id="jsonp-call" src="https://example.com/script3"></script>