11/21/2023 0 Comments Does slack show what you are doing![]() ![]() Originally, Slack’s browser-based web app could effectively load the entire model up front without any notable performance issues. The WebSocket connection is the transport layer for receiving real-time messages - whether messages sent from other users on the team, or model update messages that the client needs to update state(e.g., a user joins/leaves a channel, updates their profile, uploads or shares a file, and so on.) Early Days: Loading The Whole World (Or Almost All Of It) Up Front On startup, the client makes some initial API calls and connects to a Message Server via WebSocket. The client starts with an empty model, which gets populated by a combination of local cache (as applicable) and API calls. * The Slack real-time messaging app works in web browsers, and our installable desktop app also uses a web-based view of the same hence, “Desktop” is an interchangeable term for both. Messages (from members, or the server - e.g., join/leave events, profile updates etc.).Members (humans and bots comprising your team). ![]() Channels (Public, Private, and Direct Messages).There are many elements to the model, but here are a few: The Slack desktop client* builds and maintains a data model for the duration of your session. This round of improvements went live in mid-2016, but as performance is a continuous area of focus, there are always more plans in the pipeline. Topic highlights include avoiding and deferring work, adding smart preloading capabilities, the pitfalls of LocalStorage, and lessons learned while refactoring. This two-part series is about our work refactoring part of the Slack desktop client for performance. Whether doing magic with cards or a browser, it doesn’t hurt to have an ace up your sleeve. ♠️ Software performance is like a series of card tricks:
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |