如何在不重复的情况下包含即插即用小部件静态 [CSS/JS]?

发布于 2025-01-05 06:17:02 字数 920 浏览 0 评论 0原文

我有一个可重复使用的 google-maps 小部件,可以将其插入任何可能想要使用它的页面。

小部件具有:

  • Google 地图特定 js 包含。
  • 地图特定的 css 来设置地图样式。

问题:

  • 小部件代码被包含为服务器端包含。
  • 小部件特定的 jscss 必须包含在小部件代码中。
  • 因此,如果小部件在页面上重复 5 次,则 jscss 的 include 语句将被包含 5 次。
  • 我无法将小部件特定包含在 标记中,因为如果页面上未使用该小部件,则未使用的 jscss 下载到客户端。

那么,我应该如何保留 jscss 以便仅在使用小部件时才包含它们,并且在重复小部件的情况下不进行多次包含。

我的技术:

  • Django-Python [如果这很重要]
  • 我在 php 上也遇到了同样的问题

注意:

  • 我了解在页面上多次包含相同的 js 和 css 不会强制客户端多次下载它们,但我想避免多次包含。

我应该如何解决这个问题?

如果我错过了什么,请随时询问更多信息。 :)

I have a reusable google-maps widget that can be plugged into any page that might want to use it.

Widget has :

  • Google maps specific js includes.
  • Map specific css to style the map.

Problem:

  • Widget code gets included as server-side include.
  • Widget specific js and css has to included with the widget code.
  • Therefore, if widget repeats 5 times on a page, then the include statements for js and css get included 5 times.
  • I can-not keep the widget specific includes in the <head> tag, since if the widget is not used on the page, then un-used js and css gets downloaded on client.

So, how should I keep the js and css so they gets included only when the widget is used and no multiple include are done in case the widget is repeated.

My technology:

  • Django-Python [ If that matters ]
  • I also faced the same problem on php

Note :

  • I understand that including the same js and css multiple times on a page doesn't forces the client to download them multiple times, but I want to avoid the multiple includes.

How should I tackle this problem ?

Please feel free to ask for more info, if I missed something. :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自由如风 2025-01-12 06:17:02

根据您的用例,有几个选项:

  1. 为需要该小部件的所有页面使用单独的基本模板;在该库中添加所需的 js/css 文件。对于所有需要该小部件的视图,请从修改后的基础继承。

  2. 使用javascript实现条件包含。

Depending on your use case a few options:

  1. Use a separate base template for all pages that need the widget; in that base add the required js/css files. For all views that need the widget, inherit from the modified base.

  2. Using javascript implement conditional includes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文