官术网_书友最值得收藏!

Chapter 2. The JavaScript Execution Model

The first chapter of this book explored the state of JavaScript concurrency. Generally speaking, dealing with concurrency in JavaScript applications is anything but a trivial matter. There's a lot to think about when writing concurrent JavaScript code, and the kind of solutions that we come up with are often unorthodox. There's a lot of callbacks, and wading through all of them is enough to drive a person insane. We also caught a glimpse of how our pattern of writing concurrent JavaScript code has started to change with existing concurrency components. Web workers have started to mature, and JavaScript language concurrency constructs have only just been introduced.

The language and the runtime environment only get us partway there. We need to think about concurrency at the design level, rather than after the fact. Concurrency should be the default. This is easy to say and very difficult to do. Throughout this book, we're going to explore all that the JavaScript concurrency features have to offer, and how we can best use them to our advantage as design tools. But, before we do this, we need to go into depth on what's really happening when our JavaScript runs. This knowledge is an essential input to designing concurrent applications, because we'll know exactly what to expect when choosing one concurrency mechanism over another.

In this chapter, we'll start with the browser environment, by looking at all the subsystems that our code touches—such as the JavaScript interpreter, the task queue, and the DOM itself. Then we'll walk through some code that will shed some light on what's really happening behind the scenes to orchestrate our code. We'll close the chapter with a discussion on the challenges that we face with this model.

主站蜘蛛池模板: 固安县| 汽车| 荥阳市| 德清县| 上饶市| 广灵县| 榆林市| 济源市| 同江市| 腾冲县| 湘潭县| 金堂县| 榆社县| 桂林市| 望谟县| 桂阳县| 恩平市| 临湘市| 郸城县| 普兰店市| 平罗县| 米易县| 衢州市| 商南县| 大庆市| 江津市| 长阳| 毕节市| 天祝| 高碑店市| 渝北区| 阜康市| 德阳市| 图片| 阿克陶县| 息烽县| 老河口市| 庆元县| 辽源市| 萨嘎县| 南平市|