Reputation: 715
I'm a "long time reader first time poster", glad to start participating in this forum.
My experience is with Java, Python, and several audio programming languages; I'm quite new to the big bad web technologies: HTML/CSS/JavaScript. I'm making two personal sites right now and am wondering if I'm relying on JavaScript too much.
I'm making a site where all pages have a bit of markup in common--stuff like the nav bar and some sliced background images--so I thought I'd make a pageInit() function to insert the majority of the HTML for me. This way if I make a change later, I just change the script rather than all the pages. I figure if users are paranoid enough to have JavaScript turned off, I'll give them an alert or something. Is this bad practice? Can JavaScript be overused?
Thanks in advance.
Upvotes: 3
Views: 818
Reputation: 34038
Putting HTML in your JavaScript is a bad idea. If you want to keep common HTML together, there are many different templating solutions out there for many different server side languages.
The simplest way to get started is to use php includes or jsp includes.
PHP:
<html>
<body>
<?php include("header.php"); ?>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
</body>
</html>
Java/JSP:
<html>
<body>
<%@include file="header.jsp" %>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
</body>
</html>
Upvotes: 3
Reputation: 5662
If your javascript adds to the user experience then no. The web is moving forward and javascript is a technology that is significantly enhancing the user experience and turning the internet into a rich source of content and applications. It shouldn't be considered bad.
Ideally your site should work without javascript but as long as you are alerting your users to the fact that your site requires it then that's something at least.
If you're interested there is currently a free ebook by Jesse Skinner on Unobtrusive Ajax which talks about enhancing the user experience using ajax but without restricting those users who have javascript switched off. It's a good read.
Unobtrusive Ajax - Jesse Skinner
Upvotes: 0
Reputation: 48369
JavaScript can be overused, as can any other piece of technology. Identifying when you're overusing it is tricky and subjective.
In this particular case, I'd recommend the use of a server-side include technology to incorporate the header, footer, navigation, etc. This could be as simple as straight Apache SSI (for example), or if you were using Java, Python, PHP, etc. to construct the page, then making use of the idiomatic method for including other pages, views or templates into the current one.
This has the benefit that users with JavaScript disabled won't have issues with the content of your site, which is a fairly important aspect. Since there are perfectly good ways to solve this problem on the server side such that the client doesn't need to do any extra work, this is a case where I'd say JavaScript was a "bad idea".
Upvotes: 1
Reputation: 1600
Its pretty bad. Consider Search Engine Optimization (SEO). Where do you get info for that pageInit()? AJAX call or just some static text?
Upvotes: 1
Reputation: 62377
What you do is more of a job for server side scripting preprocessing in languages like PHP (or Python, or Java... actually there's server side JavaScript possible as well). This way you can deliver the content no matter if the browser supports JavaScript or not. Use JavaScript to do what server side technologies can't (image rotation, dynamic menus, AJAX calls etc).
Upvotes: 8