GUI concept for a reactive, asynchronous graphical editor

I think I could describe this problem in an abstract way, but I suppose it will be easier to understand when I describe it in a real world environment.

The Problem

Imagine a graphical editor where different graphical objects can be inserted via drag and drop:

Now when I drop the half transparent object there. Through some heavy computations the following result is achieved:

Up until now we do the computation at the time when the user releases the mouse synchronously. Meaning, he waits lets say two seconds until he can use the program instead. As I said previously this is just a simplified example. It needs quite more than this interaction to have a two second calculation time, but it happens.

Now we thought it would be nice to do the whole computation asynchronously, so that the user use the rest of the application during this time. And there lies the problem The user could now in these two seconds trigger additional drops as he pleases.

Meaning he has dropped three objects (a,b,c) while not even the first was completely calculated (A).

Solution 1

The user can drop the objects as he pleases. The changes are accumulated after the first calculation is ready.

Problem with this solution is, that the user drops objects on the initial state of the worksheet probably assuming that the first object (a) was never inserted. It will definitively confuse the user.

Solution 2

The dropped objects (b,c) are just ignored. Of course the UI would be “blocked” with an overlay and drop would be made impossible.

Problem with this solution is, that I would have again blocked the UI only now with my own custom overlay.

The Question

Have you encountered any of these problems? Is there a smarter solution than any of the two presented?

Solution 1 is the one preferred by most users, based on my experience. The problem you described, “he user drops objects on the initial state of the worksheet probably assuming that the first object (a) was never inserted,” can be mitigated with a temporary placeholder visual that indicates an object was dropped, but its state is not yet computed. I would make the visual similar to the final result, but with a difference that indicates the final result is being computed. Also, have another visual somewhere, either in a status area, or as part of the temporary visual, with a small, unobtrusive animation, indicating calculations are occurring.

Finally, I would work hard to make these calculations faster. Perhaps there is a problem with the algorithm, or perhaps you need to pre-fetch some data remotely. The faster you can speed up the calculations, the more friendly your application will appear to the user.

5

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật