2010-12-13 31 views
10

Tôi có ứng dụng Rails 3 và chỉ nhận thấy rằng khi sử dụng Chrome (trên Mac) để truy cập ứng dụng, mọi trang trên trang web sẽ được yêu cầu hai lần. Điều này đang xảy ra trong phát triển và sản xuất (Heroku). Firefox và Safari chỉ gửi yêu cầu một lần. Hành vi này giống nhau ngay cả khi tôi xóa tất cả bố cục và nội dung cho hành động. Có vẻ như có vấn đề về loại MIME. Có ai đã khắc phục vấn đề này không?Chrome gửi yêu cầu nhiều lần

class PagesController < ApplicationController 
    def home 
    render :text => 'a', :layout => false 
    end 

Đây là nhật ký máy chủ trong phát triển:

Started GET "/" cho 127.0.0.1 tại Mon Dec 13 10:33:33 -0800 2010

chế biến bởi PagesController # nhà như HTML

rendered mẫu văn bản (0.0ms)

Co mpleted 200 OK trong 2ms (Số lần xem: 1.3ms | ActiveRecord: 0.8ms)


Started GET "/" cho 127.0.0.1 tại Mon Dec 13 10:33:33 -0800 2010

chế biến bởi PagesController # nhà như */*

rendered mẫu văn bản (0.0ms)

Hoàn thành 200 OK trong 3ms (Lượt xem: 1.7ms | ActiveRecord: 1.4ms)

+0

Tôi gặp sự cố tương tự Với Chrome 9.0.597.98 trên XP: mỗi lần tôi nhận được trang (PHP), nó sẽ truy cập nhật ký 3 lần (trên cùng một giây). Bất kỳ trình duyệt nào khác mà tôi đã thử hoạt động tốt với trang đó (Firefox 3.6.13/14 trên Linux/Windows, Opera/Windows, IE8, thậm chí Chromium/9.0.597.94/Linux). –

Trả lời

4

Tôi đã tìm thấy nguyên nhân gây ra sự cố của mình và có thể là của bạn: Tôi đã sử dụng các tiện ích mở rộng của Google Chrome có tên Web Server NotifierWeb Technology Notifier.

Sau khi tắt chúng, tôi chỉ nhận được một yêu cầu trên mỗi trang.

+0

Điều này cũng giống như trường hợp của tôi. Chỉ có phần mở rộng tôi đang sử dụng là ezLinkPreview. – monocle

4

Vấn đề có thể liên quan đến vấn đề này: http://news.ycombinator.com/item?id=1872177

Chrome đang cố gắng một số chiến thuật tấn công trong phát triển của nó được xây dựng (Tôi nghĩ rằng đó là mát mẻ). Những gì họ đang làm là đầu cơ mở ổ cắm cho máy chủ, và cũng mở một ổ cắm thứ hai nếu nỗ lực đầu tiên của họ không nhận được phản hồi đủ nhanh. Nó khá dễ dàng để xem làm thế nào một lỗi trong công cụ này, hoặc thậm chí chỉ là hành vi mong đợi, có thể kích hoạt bộ lọc lạm dụng. Nhưng, như tôi đã nói, tôi nghĩ nó đáng làm. Tất cả các công ty khởi nghiệp trên web này sẽ kiếm được nhiều tiền hơn nếu Web nhanh hơn.

Nếu ứng dụng Rails của bạn không phản hồi đủ nhanh, có thể Chrome đang cố gắng tìm cách lấy lại nội dung cho người dùng; có thể không có nhiều bạn có thể làm về nó. Thời gian phản hồi của bạn rất nhanh, nhưng tùy thuộc vào thời gian quay của kết nối, đó có thể là một phần của vấn đề.

0

Tôi đã tìm thấy chuỗi này trong khi nghiên cứu vấn đề tương tự. Tôi có HTML <OBJECT> có dữ liệu đang được phổ biến bằng một cuộc gọi đến tập lệnh php. Tôi nhận được hai cuộc gọi (GET) đối với tập lệnh PHP khi chạy trong Chrome 27.0.1453.81, nhưng chỉ có một cuộc gọi từ IE (10.0) hoặc FF (19.0.2).Nhìn vào lưu lượng truy cập HTTP, GET thứ hai được tạo sau lần GET đầu tiên, nhưng trước khi GET đầu tiên trả lời, vì vậy, tôi đồng ý với đề xuất rằng Chrome đang thiếu kiên nhẫn và gửi GET thứ hai khi nó tin đã thất bại (không có).
Kịch bản php của tôi sẽ luôn mất vài giây để chạy và tôi không thể làm việc xung quanh đó, và cuộc gọi thứ hai này gây cho tôi một số đau buồn, vì vậy tôi quan tâm đến bất kỳ chiến lược nào có thể kiểm soát nó.

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