Ajax|web| program This is not to denigrate Amazon and it works pretty well within a very limited limit. However, the interaction model on which it relies is undoubtedly rather limited than the worksheet.
So why are there so many restrictions in modern web applications? At present, there are many technical reasons. So now let's make a further analysis.
Third, the potential of the network
The greatness of the internet age is that all computers around the world are interconnected, as in a very large computational resource. Remote and local procedure calls are difficult to differentiate, and publishers are no longer aware of the physical machines on which they work.
Unfortunately, remote and local procedure calls are fundamentally different technologies.
Communication on the network is expensive (they are slow and unreliable). When a subset of non-network code is compiled or interpreted, methods and functions are encoded as instructions stored in the same local memory as the data on which they are manipulated (Figure 6). This way, passing data to a method and returning the result is fairly straightforward.
Figure 6 Local procedure call sequence diagram-this few elements such as program logic and data models are stored in local memory and can be seen directly from each other. |
In fact, in order to send and receive data at the bottom, many computations run at both ends of a network connection (Figure 7). In fact, this calculation is far less than the running of the physical circuitry causing the system to slow down-all levels of coding and decoding across all aspects of communication, from the physical information transmitted along the line, translate the information into binary 1 and 0, error checking and resend, to the reorganization of the binary sequence.
Figure 71 A remote procedure call sequence diagram. The program logic on one machine attempts to manipulate the data model on another machine. |
A request to invoke a function must be encoded as an object that will be serialized later (i.e., converted to a linear set of bytes). The serialized data is then passed to the application protocol (now typically HTTP) and sent through physical transmission.
On a remote machine, the application protocol is decoded, and the byte of the data is drag to create a copy of the request object. The object is then applied to the data model and to a generated response object. In order to contact the response and call function, the serialization and transport layer must be navigated again, resulting in a response object being returned to the calling function.
These clients are complex but are suitable for automating implementations. Modern programming environments such as Java and the Microsoft. NET Framework all provide the free use of this functionality. Still, when a remote procedure call (RPC) is generated, there is a lot of activity going on inside and if such a call is too free, performance can be affected.
Therefore, calls over the network will never be as efficient as invoking a method in local memory. Moreover, the unreliability of the network (and hence the need to resend lost packets) makes this inefficiency constantly changing and unpredictable. The memory responsiveness on your local machine is not only better, but can be well defined by comparison.
But what does it have to do with usability? It has been proved that the relationship is quite large.
A successful computer UI does need to imitate our real world expectations. One of the most fundamental principles of this interaction is that when we click something, it responds immediately. A slight delay between the click and response can confuse and distract the user from the task at hand to the UI itself.
All the extra work that must be done to cross the network is often enough to slow down a system so that the delay becomes quite noticeable. In a desktop application, we need to make poor usability design decisions that make the application feel full of error or not responsive, but in a networked application, we don't need to care about that!
- Ajax: A new way to build Web apps
- Discussion on the error handling mechanism of AJAX (2)
- Discussion on the error handling mechanism of AJAX (1)
- First experience. NET Ajax Brushless New technology
- A brief analysis of Ajax development Technology in Rails system (4)