向客户端提供个性化javascript代码

向客户端提供个性化javascript代码,javascript,laravel,socket.io,Javascript,Laravel,Socket.io,首先,我试着在不同的问题和论坛中寻找答案,但我很难找到正确的搜索关键词,所以我没有找到任何相关的 基本上,我已经开始为网站开发一个简单的实时聊天小部件的实现,类似于,等等。因为,我将使用Socket.IO,我正在寻找一种简单的方法来向潜在的客户机提供javascript代码(这可能不是技术熟练的)。因此,我们的想法是只需要一个简单的标记,它可以动态地创建另一个源代码指向我的服务器的脚本标记,或者只需要一个源代码正确的脚本标记 我遇到的问题是关于服务器对该请求的响应。在测试实现中,我添加了一个脚本

首先,我试着在不同的问题和论坛中寻找答案,但我很难找到正确的搜索关键词,所以我没有找到任何相关的

基本上,我已经开始为网站开发一个简单的实时聊天小部件的实现,类似于,等等。因为,我将使用Socket.IO,我正在寻找一种简单的方法来向潜在的客户机提供javascript代码(这可能不是技术熟练的)。因此,我们的想法是只需要一个简单的
标记,它可以动态地创建另一个源代码指向我的服务器的脚本标记,或者只需要一个源代码正确的脚本标记

我遇到的问题是关于服务器对该请求的响应。在测试实现中,我添加了一个脚本标记,它调用服务器,服务器以字符串形式响应javascript代码,我发现这是一种非常粗糙的方法。我不能只提供一个简单的javascript文件的原因是,因为它需要个性化,所以我可以跟踪客户端从何处连接,以便将客户端连接到适当的“代理”(网站管理员)。我可能会为每个用户创建单独的文件,但我不确定这会有多容易维护和高效


因此,我的问题是,如何以高效和安全的方式提供这种个性化的javascript代码?如果这有什么不同,我将使用Laravel作为后端。

您可以只将javascript传输到客户端,而不使用
标记,然后使用
eval()
在那里运行代码

在测试实现中,我添加了一个脚本标记,它调用服务器,服务器以字符串形式响应javascript代码,我发现这是一种非常粗糙的方法

如果它能满足您的需要,这是一个很好的解决方案

如果它感觉粗糙,有一些东西可以帮助它保持清洁。将javascript保存在一个单独的文件中,并使用
file\u get\u contents
读取该文件。如果需要使用占位符对其进行个性化设置,可以添加
%s
并使用
sprintf
弹出个性化设置

有一些相当大的广告网络正以这种方式提供javascript,所以我不认为这种方法有任何内在的错误


就安全性而言,除了确保通过HTTPS提供所有服务之外,我不确定您还能做些什么。我希望不需要通过get变量传递敏感信息。

那么,基本上只需一个字符串代码就可以响应请求了?因为,正如我在问题中所说,这就是我现在正在做的,但我觉得这是一种相当肮脏的方式。当然,这是肮脏的。如果您不需要灵活性,最好传递某些参数,并将它们与客户端已定义的固定函数一起使用。例如,您传递(100150,20)并使用这三个值在客户端上调用函数drawCircle(100150,20)。这样做的目的是使客户端的代码尽可能简单,因此类似于,其中包含实际实现。通常您将有一组固定的函数可供选择。只是把它们放在一个JS文件中,包括它,然后用某种跳转表调用你需要的函数,我没有得到。您能详细说明一下吗?您所提供的javascript的个性化程度到底是多少?只是一些变量为不同的用户获取不同的值吗?是的,只是一些令牌和请求密钥。但理想情况下,如果出现问题(软件更新、漏洞等),我希望能够更改客户网站上的代码,而无需他们进行任何更改。很好!谢谢你的回复。我没有想过使用
文件获取内容
sprintf
,这肯定会让它更优雅一些。至于安全性,我不会发送敏感信息,所以我认为HTTPS就足够了。