Spec HTML zaleca, aby określić height
i width
dla <img>
jako wskazówka dla agenta wizualnej, co mieszanek znaczników i zasady stylu budowania wizualnej reprezentacji dokumentu HTML. W modelu pudełkowym CSS wymiary obrazu to nieodłączne, tj. Są one niejawne w binarnym obszarze blob. Oznacza to, że przeglądarka musi czekać odpowiedź HTTP przed podjęciem decyzji, jak duży jest obraz, a tym samym, jak rozłożyć i pozycji rodzeństwa i rodziców. Określenie wymiarów na stronach HTML pomaga przeglądarce szybko renderować stronę, ponieważ może ona przydzielić szerokość i wysokość przed pobraniem obrazu z serwera.
W tym momencie powinno być jasne, że nie ma możliwości uzyskania dostępu do szerokości obrazu na kliencie przed jego pobraniem. Kiedy JavaScript to wie, przeglądarka już wiedziała, a ty twierdzisz, że jest za późno na twoje wymagania.
Jedyną opcją wskazującą przeglądarkę jest pomiar obrazu po stronie serwera. Można to zrobić na żądanie (ale jest to marnowanie zasobów), lub można to zrobić raz, gdy obraz jest najpierw wysyłany (a następnie pobierany z bazy danych), lub ostatecznie można założyć, że jest stały, na przykład jeśli jest to zdjęcie profilowe, że twoja usługa zawsze będzie się powiększać lub zmniejszać, aby być dokładnie W x H
pikseli (może to być parametr konfiguracyjny).
Dzięki, bałam się, że to był problem. Pozostała więc opcja wstępnego wczytania obrazu w pamięci podręcznej, ale uczynienia go niewidocznym, a następnie pokazania go? Myślę, że podam parametry podczas przesyłania obrazu, co wydaje się lepsze niż wstępne ładowanie obrazów. – adnan
Jeśli sprawisz, że będzie niewidoczny, gdy nie jest załadowany, nie ma sensu ustawiać wymiarów, ponieważ i tak przeglądarka musi się zrezygnować. Jedyną opcją jest pomiar na serwerze, jednak należy pamiętać, że nie jest to wymagane i nie jest powszechną praktyką. Jeśli naprawdę chcesz, to jest ok, inaczej po prostu pomiń to – Raffaele
Dzięki, że chciałbym coś takiego: http://stackoverflow.com/questions/1944280/determine-original-size-of-image-cross-browser.Ale teraz dodam parametry do przesłanego pliku automatycznie po przesłaniu. – adnan