2012-07-24 35 views
5

Tôi đang làm việc trên dự án Biểu mẫu Web ASP.NET 4.0, sau khoảng thời gian gián đoạn khoảng 5 năm và tôi bị nhầm lẫn về hành vi gửi.ASP.NET Web Forms có ngăn chặn một lần nhấp đúp không?

Trong sự kiện nhấp chuột của một nút, tôi ngủ chủ đề để tôi có thể nhấp vào nút gửi nhiều lần.

Từ những gì tôi có thể nói, ASP.NET đang ngăn sự kiện nhấp được gọi nhiều lần. Điều này có đúng không?

BTW: Tôi đã tắt javascript cho thử nghiệm này.

+0

thể trùng lặp của [ASP.Net kích đúp vào vấn đề] (http://stackoverflow.com/questions/1498269/asp-net- double-click-problem) và [Prevent double-clicking on Button] (http://stackoverflow.com/questions/6408710/prevent-double-clicking-on-button) và http://stackoverflow.com/questions/11342546/how-to-prevent-double-submit-với-jquery-in-asp-net-app-với-updatepanels bằng cách nào? rq = 1 – adatapost

+0

Chuyên nghiệp blem với những câu trả lời là họ nói về việc thực hiện một mã thông báo để xác định xem một trình đôi đã diễn ra. Đây là những gì tôi đã làm cho đến khi nó trông giống như ASP.NET đã ngăn chặn nó anyway. Chỉ có 1 câu trả lời, http://stackoverflow.com/a/1502846/120399, cho biết rằng ASP.NET có thể xử lý nó cho bạn. – Jules

Trả lời

8

"ASP.NET đang ngăn sự kiện click được gọi nhiều lần. Có đúng đây?"

Không, trên thực tế những gì đang xảy ra với bạn là sự kiện của bạn bị chặn bởi khóa của phiên. (What session is on asp.net, là một mô-đun trên asp.net có thể giữ dữ liệu cho mỗi người dùng truy cập trang web)

Vì vậy, khi bạn gửi, và trang đang chạy trình này, sau đó bạn thực hiện lần thứ hai trước khi đầu tiên phát lại, thực sự là thứ hai đang chờ đợi đầu tiên để kết thúc và mở khóa phiên.

Để thực hiện kiểm tra và chứng minh rằng phiên đang khóa yêu cầu của bạn, hãy tắt phiên và thử lại kiểm tra của bạn.

tương đối:
Web app blocked while processing another web app on sharing same session
What perfmon counters are useful for identifying ASP.NET bottlenecks?
Replacing ASP.Net's session entirely
Trying to make Web Method Asynchronous

+1

Tôi đã thực hiện kiểm tra và kết quả như bạn nói - khi phiên bị tắt, tôi nhận được nhiều lần truy cập cho sự kiện. Khi phiên được bật, có vẻ như các yêu cầu tiếp theo bị loại bỏ và không được xếp hàng đợi nếu sự kiện bị chặn. Từ điều này, tôi giả sử nếu tôi có phiên được kích hoạt cho một trang, tôi không phải lo lắng về việc gửi hai lần - miễn là tôi, giả sử, vô hiệu hóa nút trước khi trả lời. Điều này có đúng không? – Jules

+0

@Jules Tốt, tôi rất vui vì tôi đã hiểu được vấn đề thực sự :) – Aristos

+0

@Jules Có phiên là sự trợ giúp cho nhiều vấn đề đồng bộ hóa như vậy. Tôi đã thực hiện một phiên tùy chỉnh mà không phải là khóa bất cứ điều gì và tôi khóa bởi vấn đề trái của tôi như thế này. Đây là một phần tốt, phần xấu là khóa tất cả các yêu cầu và điều này làm cho yêu cầu không có thuyết tương đối để chặn một khác ... ít nhất làm cho cuộc sống dễ dàng nhất trong những tháng đầu tiên khi bạn bắt đầu một trang web. – Aristos

Các vấn đề liên quan