Impact of IE Discontinuation

Maintained on

> Internet Explorer will be disabled.

How many web engineers rejoiced at this one sentence?

Even after Chrome surpassed IE in market share and Edge switched to the Chromium rendering engine, a significant number of IE users remained in Japan.

Many developers struggled to use new convenient features to accommodate these IE users.

The kintone.Promise object was also created by Cybozu to ensure asynchronous processing works in IE environments.

Furthermore, the internet is filled with both old methods to support IE and new methods that ignore IE, creating a significant barrier for JavaScript beginners.

This time, I would like to discuss the impact of IE discontinuation on kintone and some points to consider in future coding.

It won’t be completely unusable

Please use Microsoft Edge with “Internet Explorer mode (IE mode)” to directly access traditional Internet Explorer-based websites and applications.

It seems that IE will not completely disappear from the system.

However, traditional IE users likely use IE out of habit from the old OS era, thinking “the internet means using IE,” rather than out of necessity.

Therefore, the number of people who will go out of their way to open Edge and use IE mode should significantly decrease.

Support for IE11 will also end by the end of 2022, so it’s safe to consider it as non-existent.

Impact on kintone development

Due to its nature, kintone executes uploaded JavaScript as-is without any compilation, so unless you use a development environment like Node.js, you had to consider IE during the coding stage.

This will no longer be necessary.

As long as different browsers have different rendering engines, the term “cross-browser compatibility” will remain, but it won’t be as costly as “IE and everything else.”

Now, let’s talk about how to code in the future.

Do not use var

var is very flexible, to the point of being free-form.

It can be called before definition due to hoisting and can be redefined without errors.

This flexibility can cause errors in programs due to “unpredictability.”

For those learning JavaScript from now on, “there is no var in variable definitions” will not cause any issues.

You should use let and const instead of var.

Furthermore, almost all variable definitions should be replaceable with const.

use_const_only
const { record } = kintone.app.record.get();

for (const [code, field] of Object.entries(record)) {
  console.log(`The content of field code ${code} is`, field);
}

Use async/await for asynchronous processing

Method chaining with Promise reduces code readability.

Additionally, it is inconvenient as you cannot implement error handling using try-catch.

Let’s utilize async/await. It makes parallel processing and error handling easier.

use_async/await
kintone.events.on('...', async (event) => {
  try {
    const [clientRecords, departmentRecords] = await Promise.all([
      kintone.api(/* ... */),
      kintone.api(/* ... */),
    ]);
  } catch (error) {}
  return event;
});

Reference: Windows 11 system requirements, features, and device requirements

#JavaScript #kintone