Dev Depot: Conditioner.js — Condition Your Code

Following the latest trends in responsive design doesn’t just mean making your site viewable on monitors of different sizes; it also involves streamlining your content and design to accommodate various bandwidth types and other factors. This is where conditional statements and testing comes into play.

According to its publisher, Conditioner.js (www.conditionerjs.com) is an environmentally aware JavaScript library for loading and unloading modules based upon the state of their surroundings. These modules are loaded separately from each other, preventing conflicts via an API that allows for structured negotiations, allowing users to safely access the modules once they’ve been parsed. Conditioner is based on RequireJS and requires this script to function. The system uses modules — which are different from traditional script files — since they incorporate well-defined objects and avoid polluting the global namespace. A module can explicitly list its dependencies without referring to global objects, receiving those dependencies as arguments to the function defining the module instead.

Conditioner.js is an environmentally aware JavaScript library for loading and unloading modules based upon the state of their surroundings.

“RequireJS is awesome at what it does, to not leverage that awesomeness and write a module loader of our own would just be silly,” states a Conditioner rep. “You define the required state [and] Conditioner takes it from there.”

Conditioner loads and unloads specified modules on the fly; such as only loading and displaying content when a browser window is a certain size, and then unloading content if the window is resized below a certain size.

Using the application of a module that transforms an anchor link into a Google Map, we can see how the Map module is bound using the data-module attribute and conditions set via the data-conditions attribute in the following anchor:

<a href=”https://maps.google.com/?ll=51.741,3.822”
data-module=”ui/Map”
data-conditions=”media:{(min-width:40em)} and element:{seen}”> ...
</a>

“It would make sense to only activate the maps module if there’s enough real estate on the screen to render a decent sized map,” the rep explains. “And to save a request and some bits and bytes you might only want to start loading the map once the map container becomes visible to the user.”

Once the HTML is setup, use the loadModules method to tell Conditioner to look for modules in a certain section of the DOM, ie. conditioner.loadModules(document);.

While still under development, the latest version of Conditioner can be downloaded in a readable developer format, as well as a ~ 2.5Kb compressed production file.

The download does not include the default tests as these are different for each project, but the publisher includes separate downloads for Connection (is the user connected to the Internet or not?), Element (specifying a min-width, max-width and “seen” condition), and Media tests (with variables for query and “supported”), as well as for the availability of a Pointer, along with a test for the min-width and max-width of the viewport Window.

Although Conditioner requires a modern browser to function, IE8 support is possible when using media queries as conditions via the media:{supported} condition to still load modules on IE8.

The Conditioner documentation contains examples of basic implementations, along with examples of complex and custom conditions, plus a guide to using multiple modules that makes script setup easy and quick.

Some coders will comment that conditional statements and testing via media queries and other methods are readily performed without helper applications such as Conditioner, but one big value of this script may be in the way that it harmonizes all of your scripts so that they load and execute in the desired order without conflicts — or not load at all, still without conflicts. Give Conditioner a try to see if it helps your development efforts along.

Related:  

Copyright © 2024 Adnet Media. All Rights Reserved. XBIZ is a trademark of Adnet Media.
Reproduction in whole or in part in any form or medium without express written permission is prohibited.

More Articles

opinion

The Search for Perfection in Your Payments Page

There has been a lot of talk about changes to cross sales and checkout pages. You have likely noticed that acquirers are now actively pushing back on allowing merchants to offer a negative option, upsell or any cross sales on payment pages.

Cathy Beardsley ·
opinion

Unpacking the Payment Card Industry's Latest Data Security Standard

The Payment Card Industry Data Security Standard (PCI DSS) is a set of requirements and guidelines that apply to all businesses that accept credit card payments, and is designed to ensure the security of those transactions.

Jonathan Corona ·
opinion

Compliance With State Age Verification Laws

During the past year, website operators have faced a slew of new state age verification laws entailing a variety of inconsistent compliance obligations.

Lawrence Walters ·
opinion

Merchants in Spotlight With Visa's VIRP

By now, most merchants know about the Visa Integrity Risk Program (VIRP) rolled out in spring 2023. The program is designed to ensure that acquirers and their designated agents — payment facilitators, independent sales organizations and wallets — maintain proper controls and oversight to prevent illegal transactions from entering the Visa payment system.

Cathy Beardsley ·
opinion

How to Know When Hosting Upgrades Are Really Needed

I was reminded about an annoyingly common experience that often frustrates website owners: upgrades. Sometimes, an upgrade of physical system resources like CPU, RAM or storage really is required to solve a problem or improve performance… but how do you know you’re not just being upsold?

Brad Mitchell ·
profile

WIA Profile: Natasha Inamorata

Natasha Inamorata was just a kid when she first picked up a disposable camera. She quickly became enamored with it and continued to shoot with whatever equipment she could afford. In her teens, she saved enough money to purchase a digital Canon ELPH, began taking portraits of her friends, shot an entire wedding on a point-and-shoot camera and edited the photos with Picnik.

Women in Adult ·
trends

Collab Nation: Top Creators Share Best Practices for Fruitful Co-Shoots

One of the fastest ways for creators to gain new subscribers and buyers, not to mention monetize their existing fan base, is to collaborate with other creators. The extra star power can multiply potential earnings, broaden brand reach and boost a creator’s reputation in the community.

Alejandro Freixes ·
opinion

Bridging Generational Divides in Payment Preferences

While Baby Boomers and Gen Xers tend to be most comfortable with the traditional payment methods to which they are accustomed, like cash and credit cards, the younger cohorts — Millennials and Gen Z — have veered sharply toward digital-first payment solutions.

Jonathan Corona ·
opinion

Legal and Business Safety for Creators at Trade Shows

As I write this, I am preparing to attend XBIZ Miami, which reminds me of attending my first trade show 20 years ago. Since then, I have met thousands of people from all over the world who were doing business — or seeking to do business — in the adult industry.

Corey D. Silverstein ·
opinion

Adding AI to Your Company's Tech Toolbox

Artificial intelligence is all the rage. Not only is AI all over the headlines, it is also top of mind for many company leadership teams, who find themselves asking, “How can this new tool help our company?”

Cathy Beardsley ·
Show More