添加动态生成的内联JavaScript的替代方案

添加动态生成的内联JavaScript的替代方案,javascript,Javascript,在HTML中生成内联JavaScript总是让我感觉不舒服,在使用了一点之后,我觉得最好利用HTML元素作为替代。使用隐藏的来存储静态JavaScript使用的键和值,而静态JavaScript只有在找到而不是使用内联JavaScript时才会起作用,这是否疯狂 在避免内联JavaScript方面,哪些实践是常见的,哪些实践最有价值?我不确定我是否理解这个问题。您是否试图从服务器端添加动态JavaScript数组并将其注入页面 如果是这样的话,使用一些Ajax并返回一些JSON不是更容易吗?我不

在HTML中生成内联JavaScript总是让我感觉不舒服,在使用了一点之后,我觉得最好利用HTML元素作为替代。使用隐藏的
    来存储静态JavaScript使用的键和值,而静态JavaScript只有在找到
      而不是使用内联JavaScript时才会起作用,这是否疯狂


      在避免内联JavaScript方面,哪些实践是常见的,哪些实践最有价值?

      我不确定我是否理解这个问题。您是否试图从服务器端添加动态JavaScript数组并将其注入页面


      如果是这样的话,使用一些Ajax并返回一些JSON不是更容易吗?

      我不确定我是否理解这个问题。您是否试图从服务器端添加动态JavaScript数组并将其注入页面


      如果是这样,使用一些Ajax并返回一些JSON不是更容易吗?

      另一种可能是动态生成.js文件,就像动态生成.html(或其他)文件一样。

      另一种可能是动态生成.js文件,就像动态生成.html(或其他)文件一样文件。

      根据动态生成的JavaScript的性质,它可能不需要内联放置。您可以简单地创建一个PHP文件,该文件将接受一些参数并生成JavaScript代码,然后使用头中的script标记调用包含所需参数的PHP文件,如
      。这就是我处理动态JavaScript生成需求的方式。

      根据动态生成的JavaScript的性质,它可能不需要内联放置。您可以简单地创建一个PHP文件,该文件将接受一些参数并生成JavaScript代码,然后使用头中的script标记调用包含所需参数的PHP文件,如
      。这就是我处理动态JavaScript生成需求的方式。

      我认为在文档中插入JavaScript是非常合理的,尤其是在填充随页面动态变化的数据时。我认为将这些数据存储在HTML标记中而不是放在内联脚本中没有任何优势


      您应该做的是通过分解可以移动到单独JavaScript文件的代码来最小化所需的内联脚本量。

      我认为在文档中插入JavaScript是非常合理的,尤其是在填充随页面动态变化的数据时。我认为将这些数据存储在HTML标记中而不是放在内联脚本中没有任何优势


      您应该做的是通过分解可以移动到单独JavaScript文件中的代码来最小化所需的内联脚本量。

      我正在尽可能地(从PHP)输出一些
      JSON
      ,其中一些
      script
      标记将稍后由我的JS代码使用。大概是这样的:

      <script type="text/javascript">
      
      var db_data = <?php echo json_encode($db_data); ?>;
      
      process_db_data_from_js(db_data);
      
      </script>
      
      
      var db_data=;
      处理来自_js的_db_数据(db_数据);
      

      我相信Flickr在他们的搜索建议中使用了类似的东西。

      我正在尽可能地(从PHP)输出一些
      JSON
      ,在一些
      脚本
      标记中,这些标记稍后将由我的JS代码使用。大概是这样的:

      <script type="text/javascript">
      
      var db_data = <?php echo json_encode($db_data); ?>;
      
      process_db_data_from_js(db_data);
      
      </script>
      
      
      var db_data=;
      处理来自_js的_db_数据(db_数据);
      

      我相信Flickr在他们的搜索建议中使用了类似的东西。

      如果您需要从服务器端应用程序获取一些数据到JavaScript中,我发现最好使用Ajax

      当然,您可以将其放入HTML元素中,但这是finnicky,会导致HTML中的语义不好。此外,使用lynx的人会将其视为您页面的一部分


      您也可以动态生成JavaScript本身,但这会留下一大堆您必须防范的问题,甚至可能是JavaScript注入。

      如果您需要从服务器端应用程序获取一些数据到JavaScript中,我发现最好使用Ajax

      当然,您可以将其放入HTML元素中,但这是finnicky,会导致HTML中的语义不好。此外,使用lynx的人会将其视为您页面的一部分


      您还可以动态生成JavaScript本身,但这会留下一大堆您必须防范的问题,甚至可能是JavaScript注入。

      您可以向元素添加属性,然后使用非静态或静态JS来查找它们

      <div id="..." extraAttribute="whatever">
      </div>
      

      (我强烈推荐JQuery进行这种编码。)

      您可以向元素添加属性,然后使用非静态或静态JS来查找它们

      <div id="..." extraAttribute="whatever">
      </div>
      

      (我强烈建议使用JQuery进行这种编码。)

      那么,这些.js文件不能从CDN或利用缓存提供,从而无法将它们移动到单独的文件中。好吧,它仍然比用内联脚本块污染HTML更干净(正如公认的答案所示)。然后,这些.js文件不能从CDN或利用缓存提供服务,从而无法将它们移动到单独的文件中。好吧,它仍然比用内联脚本块污染HTML更干净(正如公认的答案所示)。假设数据是动态的,如旋转木马的图像或cms中的页面。假设数据是动态的,比如旋转木马的图像,或者cms中的页面。这当然是一个可行的解决方案。我没有具体的问题要解决,我只是想听听一些新的想法。我认为这种策略的缺点是额外的要求。这当然是一个可行的解决方案。我没有具体的问题要解决,我只是想听听一些新的想法。我想这个策略的缺点是额外的请求。这是一个有趣的方法。这是一个有趣的方法。如果你用
      数据-
      开始你的属性,它就是有效的HTML5!我们一直都在使用它进行本地化,例如