this post was submitted on 03 Aug 2023
14 points (100.0% liked)

Web Development

0 readers
1 users here now

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

I'm not new to programming, but I am somewhat new to web development and I'm trying to figure out the most preferred way of taking a standalone header from one html document and adding it to other html documents without code duplication. If possible I want to do this with Javascript so I can learn with more basic tools before expanding further.

I've researched this a fair bit, but the advice is a bit confusing since it either seems out of date or possibly not the most secure way of handling things. Is there a preferred way of doing something like this?

you are viewing a single comment's thread
view the rest of the comments
[–] MossBear@lemmy.world 2 points 1 year ago* (last edited 1 year ago) (9 children)

I'm not far enough along to know how to answer this. I was under the possibly mistake impression that I could create a standalone html file with reusable components, tag them by id, get those elements by id in Javascript, store them as a variable and instance those component into another html document with an ordinary javascript file by getting a place holder div id in the main html file and adding the content using the innerHTML property.

Is that not the case?

[–] silas@programming.dev 3 points 1 year ago (6 children)

If I understand you right, the closest thing to this natively is probably web components. They have really good support across browsers now, and they would accomplish what you want without adding extra javascript to weigh your site down.

You could also learn and use a javascript framework like Astro, Svelte, Vue, React, etc. which are all industry-standard frameworks built to break your website down into a ton of reusable components and keep things organized. I like Svelte or Astro because they feel closer to vanilla HTML/CSS/JS to me. Here's the official interactive tutorial for Svelte if you want to mess around with it: learn.svelte.dev

PHP does have "includes" too if you want to go that route

[–] MossBear@lemmy.world 2 points 1 year ago (5 children)

I was looking into Astro and Svelte and those definitely seem interesting. I've saved links so I can get into them more in a few weeks when I'm a bit further along with the fundamentals. Thanks!

[–] jaredwhite@kbin.social 3 points 1 year ago (2 children)

Also just throwing this out there: I run a Discord called The Spicy Web that really is about learning and building stuff with the fundamentals, even for old-timers like myself (but all the more for newbies! So much advice out there is about pulling in tons of opinionated tools and dependencies, even when you don't need them…). At any point if you want to bounce ideas or questions off folks in real-time, check it out!

[–] silas@programming.dev 2 points 1 year ago

Thanks, I'll take a look at this too!

[–] MossBear@lemmy.world 2 points 1 year ago

Much appreciated, thanks! I'll save a link to this and have a look! I am definitely a fan of using simple tools, so that definitely appeals to me.

load more comments (2 replies)
load more comments (2 replies)
load more comments (4 replies)